繁体   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