早上好, 我试图将表单从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(...);
}
任何人都可以帮助我吗? 非常感谢您的任何建议。
答案 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"/>
传递任何隐藏值,否则应始终将表单中的任何属性映射到表单中的变量。在这种情况下,您不需要在表单中使用相应的映射!