1、listUI.jsp

<%@pagecontentType="text/html;charset=UTF-8"language="java"%><%@tagliburi="/struts-tags"prefix="s"%><html><head><%@includefile="/common/header.jsp"%><title>角色管理</title><scripttype="text/javascript">//全选、全反选functiondoSelectAll(){//jquery1.6前//$("input[name=selectedRow]").attr("checked",$("#selAll").is(":checked"));//propjquery1.6+建议使用$("input[name=selectedRow]").prop("checked",$("#selAll").is(":checked"));}//新增角色functiondoAdd(){document.forms[0].action="${basePath}/tax/role_addUI.action";document.forms[0].submit();}//编辑角色functiondoEdit(id){document.forms[0].action="${basePath}/tax/role_editUI.action?role.roleId="+id;document.forms[0].submit();}//删除角色functiondoDelete(id){document.forms[0].action="${basePath}/tax/role_delete.action?role.roleId="+id;document.forms[0].submit();}//批量删除functiondoDeleteAll(){document.forms[0].action="${basePath}/tax/role_deleteSelected.action";document.forms[0].submit();}</script></head><bodyclass="rightBody"><formname="form1"action=""method="post"><divclass="p_d_1"><divclass="p_d_1_1"><divclass="content_info"><divclass="c_crumbs"><div><b></b><strong>角色管理</strong></div></div><divclass="search_art"><li>角色名称:<s:textfieldname="role.name"cssClass="s_text"id="roleName"cssStyle="width:160px;"/></li><li><inputtype="button"class="s_button"value="搜索"onclick="doSearch()"/></li><li><inputtype="button"value="新增"class="s_button"onclick="doAdd()"/>&nbsp;<inputtype="button"value="删除"class="s_button"onclick="doDeleteAll()"/>&nbsp;</li></div><divclass="t_list"><tablewidth="100%"border="0"><trclass="t_tit"><tdwidth="30"align="center"><inputtype="checkbox"id="selAll"onclick="doSelectAll()"/></td><tdwidth="120"align="center">角色名称</td><tdalign="center">权限</td><tdwidth="80"align="center">状态</td><tdwidth="120"align="center">操作</td></tr><s:iteratorvalue="roleList"status="vs"><tr<s:iftest="#vs.odd">bgcolor="f8f8f8"</s:if>><tdalign="center"><inputtype="checkbox"name="selectedRow"value="<s:propertyvalue="roleId"/>"/></td><tdalign="center"><s:propertyvalue="name"/></td><tdalign="center"><s:iteratorvalue="rolePrivileges"><s:propertyvalue="#privilegeMap[id.code]"/>&nbsp;</s:iterator></td><tdalign="center"><s:iftest="state==1">有效</s:if><s:else>无效</s:else></td><tdalign="center"><ahref="javascript:doEdit('<s:propertyvalue="roleId"/>')">编辑</a><ahref="javascript:doDelete('<s:propertyvalue="roleId"/>')">删除</a></td></tr></s:iterator></table></div></div><divclass="c_pate"><tablewidth="100%"class="pageDown"border="0"cellspacing="0"cellpadding="0"><tr><tdalign="right">总共1条记录,当前第1页,共1页&nbsp;&nbsp;<ahref="#">上一页</a>&nbsp;&nbsp;<ahref="#">下一页</a>到&nbsp;<inputtype="text"onkeypress="if(event.keyCode==13){doGoPage(this.value);}"min="1"max=""value="1"/>&nbsp;&nbsp;</td></tr></table></div></div></div></form></body></html>

知识点(1):从map当中取数据

后台代码

//列表页面publicStringlistUI(){//加载权限集合ActionContext.getContext().getContextMap().put("privilegeMap",PrivilegeStatics.PRIVILEGE_MAP);roleList=roleService.findAll();return"listUI";}

在JSP页面取出privilegeMap对象中的数据

<s:iteratorvalue="roleList"status="vs"><s:iteratorvalue="rolePrivileges"><s:propertyvalue="#privilegeMap[id.code]"/></s:iterator></s:iterator>


知识点(2):

在定义的时候,虽然是String类型,但是在JSP页面判断的时候,似乎没有区分

privateStringstate;

<s:iftest="state==1">有效</s:if><s:else>无效</s:else>



2、addUI.jsp

<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><%@includefile="/common/header.jsp"%><title>角色管理</title></head><bodyclass="rightBody"><formid="form"name="form"action="${basePath}/tax/role_add.action"method="post"enctype="multipart/form-data"><divclass="p_d_1"><divclass="p_d_1_1"><divclass="content_info"><divclass="c_crumbs"><div><b></b><strong>角色管理</strong>&nbsp;-&nbsp;新增角色</div></div><divclass="tableH2">新增角色</div><tableid="baseInfo"width="100%"align="center"class="list"border="0"cellpadding="0"cellspacing="0"><tr><tdclass="tdBg"width="200px">角色名称:</td><td><s:textfieldname="role.name"/></td></tr><tr><tdclass="tdBg"width="200px">角色权限:</td><td><!--ThisisjustadetailoftheJavaMapAPI.Instead,ititeratesoverEntryobjects.TheEntryobjecthastwoproperties,thekeyandthevalue.Bydefault,theselectcomponent’slistKeyattributewillbesettokey.Alsobydefault,thelistValueattributewillbesettovalue.Ifyou’reusingMaps,youcansometimesacceptthesedefaults.因此,如果listKey="key"并且listValue="value",那么这两个值可以省略。另外,如果省略name属性,会报错!--><s:checkboxlistlist="#privilegeMap"name="privilegeIds"listKey="key"listValue="value"></s:checkboxlist></td></tr><tr><tdclass="tdBg"width="200px">状态:</td><td><s:radiolist="#{'1':'有效','0':'无效'}"name="role.state"value="1"/></td></tr></table><divclass="tcmt20"><inputtype="submit"class="btnB2"value="保存"/>&nbsp;&nbsp;&nbsp;&nbsp;<inputtype="button"onclick="javascript:history.go(-1)"class="btnB2"value="返回"/></div></div></div></div></form></body></html>


知识点(1):checklistbox

<!--ThisisjustadetailoftheJavaMapAPI.Instead,ititeratesoverEntryobjects.TheEntryobjecthastwoproperties,thekeyandthevalue.Bydefault,theselectcomponent’slistKeyattributewillbesettokey.Alsobydefault,thelistValueattributewillbesettovalue.Ifyou’reusingMaps,youcansometimesacceptthesedefaults.因此,如果listKey="key"并且listValue="value",那么这两个值可以省略。另外,如果省略name属性,会报错!--><s:checkboxlistlist="#privilegeMap"name="privilegeIds"listKey="key"listValue="value"></s:checkboxlist>

知识点(2):radio 有默认值

<s:radiolist="#{'1':'有效','0':'无效'}"name="role.state"value="1"/>



3、editUI.jsp

<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><%@includefile="/common/header.jsp"%><title>角色管理</title></head><bodyclass="rightBody"><formid="form"name="form"action="${basePath}/tax/role_edit.action"method="post"enctype="multipart/form-data"><divclass="p_d_1"><divclass="p_d_1_1"><divclass="content_info"><divclass="c_crumbs"><div><b></b><strong>角色管理</strong>&nbsp;-&nbsp;编辑角色</div></div><divclass="tableH2">编辑角色</div><tableid="baseInfo"width="100%"align="center"class="list"border="0"cellpadding="0"cellspacing="0"><tr><tdclass="tdBg"width="200px">角色名称:</td><td><s:textfieldname="role.name"/></td></tr><tr><tdclass="tdBg"width="200px">角色权限:</td><td><s:checkboxlistlist="privilegeMap"name="privilegeIds"></s:checkboxlist></td></tr><tr><tdclass="tdBg"width="200px">状态:</td><td><s:radiolist="#{'1':'有效','0':'无效'}"name="role.state"/></td></tr></table><s:hiddenname="role.roleId"/><divclass="tcmt20"><inputtype="submit"class="btnB2"value="保存"/>&nbsp;&nbsp;&nbsp;&nbsp;<inputtype="button"onclick="javascript:history.go(-1)"class="btnB2"value="返回"/></div></div></div></div></form></body></html>


知识点(1):radio 在编辑页面,不需要设置默认值,而是使用它的实际值

<s:radiolist="#{'1':'有效','0':'无效'}"name="role.state"/>