我在jsp页面中有这段代码:
<select id="DateReport" style="width: 150px;">
<option value="1"> 1 </option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
</select>
如何将所选值发送到Struts 1.2中的action类?
答案 0 :(得分:0)
您需要在MyForm
文件中声明的格式为struts-config.xml
的媒体资源:
<form-bean name="myForm" type="foo.MyForm" />
[...]
并将其与您的操作相关联
<action path="/myAction" name="myForm" type="foo.MyAction" scope="request">
以您的形式:
public class MyForm extends ActionForm {
private String myValue;
[....]
// Getters and setters for all attributes
}
然后在你的JSP中:
<html:form action="/myAction.do" method="post" >
[...]
<html:select styleId="DateReport" property='myValue' style="width: 150px;">
<html:option value="1"> 1 </html:option>
<html:option value="2"> 2 </html:option>
<html:option value="3"> 3 </html:option>
</html:select>
[...]
</html:form>
在您的操作execute()
中,您可以获得值:
MyForm myForm = (MyForm) form;
String value = myForm.getMyValue();
答案 1 :(得分:0)
您的选择&#39;缺少一个NAME。如果它有一个名称,它将作为http参数进入服务器(并且服务器不会介意这是来自&#39;选择&#39;还是文本输入...)。
<form action="YOUR_ACTION" method='post'>
<select name="dateReport" id="DateReport" style="width: 150px;">
<option value="1"> 1 </option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
</select>
<input type="submit"/>
</form>
您甚至可以将表单方法更改为&#39; post&#39;并按提交,只是为了亲眼看到参数,例如http://YOUR_ACTION?dateREport=1
从这一点开始,您可以像使用其他参数一样使用参数。忘掉它来自一个&#39; select&#39;。如果你真的使用旧的struts 1.x,那么你需要FormBean,如下所述:http://userpages.umbc.edu/~tarr/jst/lectures/S03-Struts-Beans.pdf
简而言之,您需要一个描述表单参数的bean,例如
class MyForm extends ActionForm{
private int dataReport;
// .. constructor, getDataReport(), setDataReport() ...
}
然后在struts 1 xml中注册它:
<struts-config>
<form-beans>
<form-bean name="myForm" type="mypackage.MyForm"/>
</form-beans>
<action-mappings>
...
<action path=".." type="mypackage.MyAction" name="myForm" scope="request">
...