0

早上好,我正在尝试将表单从 JSP 传递给 Action。如果我在 URL (?par=value ...) 中传递参数,表单会正确编译,但如果我使用提交和表单值,则不会。

我认为一切都设置正确,但我必须遗漏一些东西。

我已经搜索了其他类似的帖子,但我找不到解决方案。

问题是到达 Action “new” 方法的表单是空的。

struts.config.xml:

<form-bean name="EsempioForm" type="com.forms.EsempioForm"/>
<action name="EsempioForm" parameter="method" input="/pages/esempio.jsp" path="/esempio" scope="request" type="com.EsempioAction">
<forward ... />
</action>

esempio.jsp:

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
...
<html:form action="/esempio">
<input type="hidden" id="method" name="method" value="new"/>
<html:text property="desc" disabled="true" />
<html:submit styleClass="button">record</html:submit>
</html:form>

EsempioAction.java

public ActionForward new(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    ...
    EsempioForm esempioForm = (esempioForm) form;
    ...
    return mapping.findForward(...);
}

谁能帮帮我吗?非常感谢您的任何建议。

4

3 回答 3

3

改为使用<html:hidden property="method" value="new" />

编辑:

disabled="true"禁用字段不会发布在表单提交上。如果您想提交,请将其设为只读。

于 2013-10-08T10:23:25.613 回答
1

更改并重<html:form action="/esempio"><html:form action="/esempio" method="POST">

编辑 1:属性 desc 没有被传递?

它与 disabled="true" (只是怀疑)属性有关吗?

于 2013-10-08T10:23:50.697 回答
0

您尝试通过 html 表单传递的属性应该存在于您的表单 bean 类中。任何属性都应该始终映射到表单中的变量,除非您使用<input type="hidden" id="method" name="method" value="new"/>. 在这种情况下,您的表单中不需要相应的映射!

于 2013-10-08T11:49:02.473 回答