如何将所选值从 jsp 页面发送到操作 class?
How to send selected value from jsp page to action class?
我在 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 中将所选值发送到操作 class?
您需要在 struts-config.xml
文件中声明的 MyForm
表单中 属性:
<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();
您的 'select' 缺少名称。如果它有名称,它将作为 http 参数发送到服务器(服务器不介意这是来自 'select' 还是文本输入...)。
<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>
您甚至可以将表单方法更改为'post'并按提交,只是为了亲眼看到参数,例如http://YOUR_ACTION?dateREport=1
从现在开始,您可以像使用任何其他参数一样使用该参数。忘了它来自 'select'。如果您真的使用旧的 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">
...
我在 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 中将所选值发送到操作 class?
您需要在 struts-config.xml
文件中声明的 MyForm
表单中 属性:
<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();
您的 'select' 缺少名称。如果它有名称,它将作为 http 参数发送到服务器(服务器不介意这是来自 'select' 还是文本输入...)。
<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>
您甚至可以将表单方法更改为'post'并按提交,只是为了亲眼看到参数,例如http://YOUR_ACTION?dateREport=1
从现在开始,您可以像使用任何其他参数一样使用该参数。忘了它来自 'select'。如果您真的使用旧的 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">
...