簡體   English   中英

將對象從JSP傳遞到Struts 1.3中的操作類

[英]Pass object from JSP to a action class in Struts 1.3

我想將對象從JSP傳遞到動作類。 怎么做? 我對此一無所知。 我的一些示例代碼在這里:

<tr class="alt">
    <td><html:link href=""><bean:write name="EmpInfo" property="empId" /></html:link></td>
    <td><bean:write name="EmpInfo" property="empName" /></td>
    <td><bean:write name="EmpInfo" property="empAddress" /></td>
    <td><bean:write name="EmpInfo" property="empPhNumber" /></td>
    <td><bean:write name="EmpInfo" property="empEmailId" /></td>
    <td><bean:write name="EmpInfo" property="empLocName" /></td>
    <td><bean:write name="EmpInfo" property="empCountryName" /></td>
    <td><bean:write name="EmpInfo" property="empDob" /></td>
    <td><html:link href=""><bean:message key="view.single.emp.update"/></html:link></td>
</tr>

在上述代碼中的<html:link href="">標簽中,我想將empId或對象EmpInfo給操作類。 這里的EmpInfo是值對象,並且其中包含所有的getter和setter方法。

Struts的控制流程如下:

  1. 一個HttpRequest豌豆
  2. ActionServlet接收它,填充適當的ActionForm,然后將控件傳遞給Action
  3. Action執行邏輯,並轉發或重定向到ActionForward

因此,如果轉發到JSP,則不會再次將控件直接傳遞給另一個動作,但是在發送來自用戶瀏覽器的新請求之后,將調用下一個動作。

因此,傳遞對象的唯一方法是將其屬性作為請求參數傳遞(首選GET或POST)。

通過使用Struts 1.2+,您不必在ActionForm中僅具有String字段。 使用Java Beans約定讓操作中的對象引用它:

class MyActionForm extends ActionForm {
    private MyBean myBean;

    public MyBean getMyBean() {
        if (myBean == null) {
            myBean = new MyBean();
        }
        return myBean;
    }
}

現在,您可以在JSP標記中使用myBean.property1訪問其屬性,並且名稱為myBean.property1的請求參數將被填充到該屬性中。

Struts 1.2+在內部使用Apache Commons BeanUtils,因此您可以將其Converters用於復雜類型。

通過setAttribute()方法將您的對象添加到會話或請求對象中。 您可以通過getAttribute()從動作類中獲取它。

使用html:param標記,可以在html:link標記的正文中使用

<html:link href=""><html:param name="empId"><bean:write name="EmpInfo" property="empId" /></html:param></html:link>

這是正確的工作代碼。 感謝@roman c幫助我

 <td>
                <html:link href="viewDetailInfo.do">
                    <html:param name="empId">
                        <bean:write name="empList" property="empId" />
                    </html:param>
                        <bean:write name="empList" property="empId" />
                </html:link>
 </td>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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