我在做修改记录时的困惑。
在action方法中,
我通过主键从数据库中取得该条记录。
通过beanutil.工具。转为没一个actionForm
我并未用request.setAttribut()方法把actionForm对像传到jsp 页面。
但jsp 页面通过 <html:text name="XXXx" property="xxxx" />却得取到信息。也就是有值。真奇怪。
java 代码如下。
public ActionForward employeeEditPage(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException,
IllegalAccessException, InvocationTargetException,
NoSuchMethodException
{
EmployeeForm employeeForm = (EmployeeForm) form;
Employee employee = employeeService.getEmployee(employeeForm
.getEmployeeId());
BeanCopyUtils.copyProperties(employeeForm, employee);
      return mapping.findForward(EMPLOYEE_EDIT_PAGE);
}
注 EmployeeForm  是个ActionForm
   Employee 是个 实体Bean.
jsp 页面。
<html:text name="employeeForm"  property="englishName" />却有值。
难道ActionForm 不仅能把数据从显示层传到控制层,还能把数据从控制层传到显示层。
若是真的,原理了。请高手帮忙分析。不明白的请说。

解决方案 »

  1.   

    SaleUsedHouseAdd.jsp
    <jsp:useBean id="SaleUsedForm" class="com.ch.net.house.saleUsed.SaleUsedForm" scope="request" />
    <html:form action="/house/SaleUsed.do" target="_self" method="post" enctype="multipart/form-data">
        <html:hidden property="doWhat" />//这样获得值的 这是struts功能 SaleUsedForm必须有SaleUsedForm.getDoWhat();方法! 所有后台的值都可以封装在这个FORM里面以前传到前台!
    </html:form>struts-config.xml
    <action path="/house/SaleUsed" type="com.ch.net.house.saleUsed.SaleUsedAction" input="/house/SaleUsedHouseAdd.jsp" name="SaleUsedForm" scope="request">
                    <forward name="queryForAdd" path="/house/SaleUsedHouseAdd.jsp">
                    </forward>
    </action>SaleUsedForm 需extends ActionForm
      

  2.   

    楼上说得对,应该扩展 extends ActionForm
      

  3.   

    ActionForm 问题???还以为看错了呢
      

  4.   

    现在是由action 传到页面层。
    我的意思是问
    在Action中,我并没有request.setAttribute();
    为什么页面就有值。
      

  5.   

    input="/house/SaleUsedHouseAdd.jsp" name="SaleUsedForm" ///scope="request"///>在这个范围内都有.所以没有必要request.setAttribute();
      

  6.   

    ActionForm 确实不仅能把数据从显示层传到控制层,还能把数据从控制层传到显示层!
      

  7.   

    还是没有说明白.数据从控制层传到显示层是怎么传的.要保证什么一致.
    难道  return mapping.findForward(EMPLOYEE_EDIT_PAGE);
    的时候,(EmployeeForm employeeForm = (EmployeeForm) form;)
    会把 employeeForm  也传到显示层.