Struts形成空

时间:2013-10-08 10:14:00

标签: java forms jsp struts

早上好, 我试图将表单从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(...);
}

任何人都可以帮助我吗? 非常感谢您的任何建议。

3 个答案:

答案 0 :(得分:3)

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

编辑:

disabled="true"已停用的字段未在表单提交中发布。如果您想提交,请将其设为只读。

答案 1 :(得分:1)

<html:form action="/esempio">更改为<html:form action="/esempio" method="POST">,然后重试。

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

  

与disabled =“true”(只是怀疑)属性有什么关系吗?

答案 2 :(得分:0)

您尝试传递html表单的属性应该出现在表单bean类中。除非使用<input type="hidden" id="method" name="method" value="new"/>传递任何隐藏值,否则应始终将表单中的任何属性映射到表单中的变量。在这种情况下,您不需要在表单中使用相应的映射!