簡體   English   中英

如何將選定的值從jsp頁面發送到動作類?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM