[英]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中的動作類?
您需要在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();
您的“選擇”缺少NAME。 如果有名稱,它將作為http參數進入服務器(服務器不介意這是來自“選擇”還是來自文本輸入...)。
<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>
您甚至可以將form方法更改為“ post”,然后按Submit ,以親眼看到該參數,例如http:// YOUR_ACTION?dateREport = 1
從這一點出發,您可以像使用其他參數一樣使用該參數。 忘記它來自“選擇”。 如果您真的在使用舊的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">
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.