我创建了一个jsp页面,其中有一个表单,我试图从这个表单填充操作类的数据成员,在提交表单之后控件被移动到action类但是没有填充action类数据成员
我的jsp页面看起来像这样。
<s:actionerror />
<s:form action = "retrieve" method="post">
<s:textfield name = "form1" value = "form1" />
<s:textfield name="cid"/>
<s:submit type = "submit" name = "sub" value="submit"/>
</s:form>
我的动作类看起来像这样。
public class CustomerUpdate extends ActionSupport {
private String form1 ;
private String cid ;
public String execute() {
System.out.println(form1) ;
System.out.println(cid) ;
}
在提交表单后,我希望action类中的form1变量的值应为“form1”,但它仍为null。
任何人都可以帮助我在哪里出错?
提前致谢.....
答案 0 :(得分:0)
我不确定您是否有将动作类映射到jsp文件的配置文件。 通常配置文件是src文件夹中的xml文件。例如:
<struts>
<package name="default" extends="struts-default">
<action name="retrieve" class="CustomerUpdate">
<result>/xxx.jsp</result>
</action>
</package>
</struts>
由于您的execute方法是返回类型字符串,因此返回一些字符串。根据从execute方法返回的字符串,您可以重定向。否则将其改为无效。
如果您已经使用jsp正确配置了动作类,那么对于使用成员变量,jsp中的代码可能如下所示:
<form action = "retrieve" method="post">
<s:textfield name = "form1" value = "${form1}" />
<s:textfield name="${cid}"/>
<s:submit type = "submit" name = "sub" value="submit"/>
</form>
并且因为成员变量是私有的:
system.out.println(getForm1);
system.out.println(getCid);
希望有所帮助
答案 1 :(得分:0)
首先,您的代码将无法编译。
我认为 struts.xml 文件包含以下行,
<action name="retrieve" class="CustomerUpdate" method="execute">
<result name="success">/success.jsp</result>
</action>
更新 CustomerUpdate ,如下所示,然后查看该计划。
public class CustomerUpdate extends ActionSupport {
private String form1 ;
private String cid ;
public String execute() {
System.out.println(form1) ;
System.out.println(cid) ;
return "success";
}
//getter & setter for form1 & cid
}
请尝试上面的代码示例,我认为它会起作用。