当前位置: 代码迷 >> Java Web开发 >> 哪位高手可以帮小弟我把这段struts1的checkbox修改成struts2标签的形式
  详细解决方案

哪位高手可以帮小弟我把这段struts1的checkbox修改成struts2标签的形式

热度:148   发布时间:2016-04-16 21:36:35.0
谁可以帮我把这段struts1的checkbox修改成struts2标签的形式
 <c:forEach items="${privileges}" var="privilege" varStatus="statu">
       
<input type="checkbox" name="privileges" value="${privilege.id.module},${privilege.id.privilegeValue}">

${privilege.name} <c:if test="${statu.count%4==0}"><br></c:if>
  </c:forEach>
此段代码在struts1中可以正确执行,但是在struts2中提交表单后报错,报错信息为No result defined for action com.catering.web.action.privilege.PrivilegeGroupManageAction and result input。 经过搜索发现把上面的chekcbox修改成struts2标签就可以解决问题。  后台action代码如下
@Permission(model="privilegeGroup", privilegeValue="insert")
public String add() throws Exception {
PrivilegeGroup group = new PrivilegeGroup();
group.setName(formbean.getName());
if(formbean.getPrivileges()!=null && formbean.getPrivileges().length>0){
for(SystemPrivilegePK id : formbean.getPrivileges()){
group.getPrivileges().add(new SystemPrivilege(id));
}
}
groupService.save(group);
request.setAttribute("message", "权限组添加成功");
request.setAttribute("urladdress", SiteUrl.readUrl("control.privilegegroup.list"));
return ("message");
}

其中 private SystemPrivilegePK[] privileges;
------解决思路----------------------
你这就是不改应该也可以运行的吧。没有实测,貌似你的错误提示是你的action返回了input,但是你的配置文件里面没有配置input这个result
------解决思路----------------------
c标签和struts2不冲突的
input的是struts2中验证出错时候的返回值
你这应该是result的配置问题
要改s标签可以这样
<s:iterator value="privileges" status="s">
<s:checkbox name="privileges" value="id.module,id.privilegeValue"></s:checkbox>
${name}
<s:if test="#s.count%4==0 ">
</s:if>
</s:iterator>
------解决思路----------------------
引用:
不修改的话表单提交后出错了,  修改成struts2标签后就应该可以解决了
  相关解决方案