action代码
public String add(){
SysUser sysUser = SessionUtils.getSysUserFormSession(httpServletRequest);
List<Company> companies =companyService.findAllCompanies();
httpServletRequest.setAttribute("companies", companies);
httpServletRequest.setAttribute("sysUser", sysUser);
return "add";
}
public String save() throws IllegalAccessException, InvocationTargetException{
LinkPerson linkPerson = new LinkPerson();
BeanUtils.copyProperties(linkPerson, linkPersonForm);
SysUser sysUser = new SysUser();
if (linkPersonForm.getSysUserId()!=null) {
Integer sysUserid = DataType.converterString2Integer(linkPersonForm.getSysUserId());
sysUser.setId(sysUserid);
linkPerson.setSysUser(sysUser);
if (linkPersonForm.getCompanyId()!=null && linkPersonForm.getCompanyId().length()!=0) {
Company company = new Company();
Integer companyId = DataType.converterString2Integer(linkPersonForm.getCompanyId());
company.setId(companyId);
linkPerson.setCompany(company);
}else {
return "toAdd";//返回到add.jsp并且 要求能回显之前填写的linkPersonForm 信息 }
return "toList";
}
return "toLogin";
}
struts.xml
<action name="linkPersonAction_*" class="linkPersonAction" method="{1}">
<result name="list">/WEB-INF/jsp/page/crm/customer/linkman/view.jsp</result>
<result name="toLogin" type="redirectAction">
<param name="actionName">sysUserAction_isLogin</param>
<param name="namespace">/sys</param>
</result>
<result name="toList" type="redirectAction">
<param name="actionName">linkPersonAction_list</param>
</result>
<result name="add">/WEB-INF/jsp/page/crm/customer/linkman/add.jsp</result>
<result name="toAdd" type="chain">
<param name="actionName">linkPersonAction_add</param>
</result>
</action>
注意此时type="chain" 这相当于把save()方法所在的action的参数linkPersonForm传到了,新的action中(@scope("prototype")),而新action又实现了modelDriven
@Override
public LinkPersonForm getModel() {
return linkPersonForm;
}
所以linkPersonForm有被放到了valuestack上,
所以在add.jsp可以回显
add,jsp
<body>
<table>
<s:form action="linkPersonAction_save.do" namespace="/crm" method="post">
<s:hidden name="sysUserId" value="%{#request.sysUser.id}"></s:hidden>
<tr><th>姓名</th><td><s:textfield name="cnname"></s:textfield></td><th>性别</th><td><s:radio name="sex" list="#{'M':'男','W':'女'}"></s:radio></td></tr>
<tr><th>职务</th><td><s:textfield name="mobilePhone"></s:textfield></td><th>手机号</th><td><s:textfield name="duty"></s:textfield></td></tr>
<tr><th>qq号</th><td><s:textfield name="qqNum"></s:textfield></td><th>qq昵称</th><td><s:textfield name="qqNickName"></s:textfield></td></tr>
<tr><th>办公电话</th><td><s:textfield name="officePhone"></s:textfield></td><th>家庭电话</th><td><s:textfield name="homePhone"></s:textfield></td></tr>
<tr><th>电子邮件</th><td><s:textfield name="email"></s:textfield></td><td><s:select list="%{#request.companies}" name="companyId" headerKey="" headerValue="---------" listKey="id" listValue="name"></s:select></td></tr>
<s:submit value="提交"></s:submit>
</s:form>
<s:debug></s:debug>
</table>
</body>