1, 支行是下拉列表,自助银行也是下拉列表,它们是级联关系;
<tr> <th width="17%"><span>*</span>所属支行:</th> <td width="35%"><div> <s:select name="term.subBranch.id" id="subBranch" list="branchResourceList" listKey="realValue" listValue="displayValue" onchange="changeSubBranch($('#subBranch').val())"> </s:select> </div></td> <th width="13%"><span>*</span>所属自助银行:</th> <td width="35%"><div> <select id="selfBank" name="term.selfBank.id"> </select> </div></td> </tr>
2, 下面的js主要是级联操作,当更新的时候,需要同时选中所属自助银行
对js的操作,使用的是jquery
<script type="text/javascript"> $(document).ready(function(){ subBranchId = $('#subBranch').val() changeSubBranch(subBranchId) })
function changeSubBranch(subBranchId){ if(subBranchId != null){
//会去调用后台代码,这里不需要关心 $.getJSON("selfBank!loadSelfBankBySubBranch.jspa",{subBranchId:subBranchId}, function(data){ var html=''; $(data).each(function(i,o){ html+='<option value="'+o.id+'"';
// 使用 $("#selfBank").val() 获取不到值 ,需要使用下面 <s:property value="term.selfBank.id" /> if(o.id==<s:property value="term.selfBank.id"/>){ html+=" selected=selected "; } html+=' >'+o.name+'</option>'; }) $('#selfBank').html(html) }); } } </script>
终端类Terminal有一个boolean类型的属性 isPbocEnable
public class Terminal implements java.io.Serializable{ private static final long serialVersionUID = 1L; @Column(name="IS_PBOC_ENABLE") private boolean isPbocEnable; /**自动生成的 get,set方法如下*/ public boolean isPbocEnable() { return isPbocEnable; } public void setPbocEnable(boolean isPbocEnable) { this.isPbocEnable = isPbocEnable; } }
可以看出它的get,set方法将is自动去掉了,因此在页面上使用属性的时候也要去掉is
<div> <s:checkbox name="term.pbocEnable" > </s:checkbox>
//使用 isPbocEnable 是错误的,获取不到值的,因为它最终会通过get方法获取值,通过set方法设置值
</div>
2, struts2中的if的使用, 注意值用双引号而不是单引号
<td title="${type}"> <s:if test="type=="1""> 系统参数 </s:if> <s:else> 业务参数 </s:else> </td>