首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

SSH2中通过值栈获取页面值的有关问题

2012-10-15 
SSH2中通过值栈获取页面值的问题1.jsp页面代码:form actionuserUpdateaction.action methodPOST

SSH2中通过值栈获取页面值的问题
1.jsp页面代码:
 <form action="userUpdateaction.action" method="POST">
<table width="50%" border="0" align="center" id="updUserTable" class="UserTable">
<tr>
<td width="40%" align="center" valign="middle" class="updFont">姓名:</td>
<td><label>
<input name="name" type="text" id="name" value="<%=name %>" />
</label></td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="center" valign="middle" class="updFont">登录账号:</td>
<td><input name="userId" type="text" id="userName" value="<%=userId %>" readonly="readonly"/></td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="center" valign="middle" class="updFont">密码:</td>
<td><input name="userPWD" type="text" id="userPWD" value="<%=userPWD %>" /></td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="center" valign="middle" class="updFont">权限:</td>
<td valign="middle" class="updFont"><label >
<input type="checkbox" name="staQury" value="1" id="checkBox1"/>
统计查询</label></td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td valign="middle" class="updFont">
<input type="checkbox" name="verPublish" value="1" id="checkBox2"/>
版本发布</td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td valign="middle" class="updFont">
<input type="checkbox" name="perManager" value="1" id="checkBox3"/>
权限管理</td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td valign="middle" class="updFont">
<input type="checkbox" name="msgPush" value="1" id="checkBox4"/>
消息推送</td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="center" valign="middle">
<input type="submit" value="保存" /></td>
<td><input type="reset" value="取消" /></td>
</tr>
</table>
</form>
2.Action代码:

public class UserAction {
private String userId; //用户账号
private String userPWD; //用户密码
private String name; //用户姓名

private String staQury=""; //统计查询权限
private String verPublish=""; //版本发布


private String perManager=""; //权限管理
private String msgPush=""; //消息推送

private IUsersBiz iuserBiz; //user service层接口
private Users loginUser;
private Users operUser;
private List listUser; //user集合
private String resultTip; //信息提示


/**
* 更新用户信息
* @return 返回相应页面
* @throws UnsupportedEncodingException 
*/
public String userUpdate() {
this.resultTip="";//初始化resultTip
String userPer=""; //定义用户权限
//验证用户已经登录后
if(true==ToolsUtil.isLoginAuth()){
//查询用户是否有权限管理权限
if(true==ToolsUtil.isPermissionAuth(this.loginUser,ParaUtil._PERMISIONMANAGER)){
userPer=this.staQury.equals("")?"0":"1"+"-"+verPublish.equals("")?"0":"1"+"-"+perManager+"-"+msgPush;
System.out.println("查询统计权限============="+this.staQury);
System.out.println("版本发布权限============="+this.verPublish);
System.out.println("权限管理权限============="+this.perManager);
System.out.println("消息推送权限============="+this.msgPush);
if(null !=this.userId && !"".equals(this.userId)){
this.operUser=iuserBiz.findByUserId(this.userId);
}
if(this.operUser !=null){
this.operUser.setUserId(this.userId);
this.operUser.setName(this.name);
this.operUser.setPassword(userPWD);
this.operUser.setPermission(userPer);
iuserBiz.updateUser(this.operUser);//修改用户信息
this.setResultTip("用户修改成功!");
findAll();//查询更改用户后的用户列表
}
if(getOperUser()==null){
this.setResultTip("您要更新的用户不存在!");
return "updError";
}
}else{
this.setResultTip("您没有修改用户的权限,请联系管理员!");
return "updError";
}
}else{
this.setResultTip("请先登录!");
return "login";
}
return "updError";
}


/**
* 查询所有用户
* @return 返回查询结果
*/
public String findAll(){
//this.resultTip="";
//登录验证
if(false == ToolsUtil.isLoginAuth()){
this.resultTip="请先登录!";
return "login";
}
//验证用户已经登录后
if(true==ToolsUtil.isLoginAuth()){
//查询用户是否有权限管理权限
if(true==ToolsUtil.isPermissionAuth(this.loginUser,ParaUtil._PERMISIONMANAGER)){
//查询当前用户
//this.setListUser(iuserBiz.findAll());
this.listUser=iuserBiz.findAll();
if(null != this.getListUser()){
Map request=(Map) ActionContext.getContext().get("request");
request.put("listUser", this.listUser);
return "findAllSuc";
}else{
this.setResultTip("未查询到用户!");
return "findAllErr";
}
}else{
this.setResultTip("没有此权限,请联系管理员!");
return "findAllErr";
}
}
return "findAllErr";
}
...get,set方法省略
}
3.问题描述:
当修改用户权限时,第一次选择给用户所有的四个权限四个复选框全部选中(查询统计,版本发布,权限管理,消息推送)此时System的打印结果是:
查询统计权限=============1
版本发布权限=============1
权限管理权限=============1
消息推送权限=============1
修改完成后紧接着再修改用户权限这一次不给用户任何权限(即四个复选框都不选),可悲剧的是这一次的打印结果还是:
查询统计权限=============1
版本发布权限=============1
权限管理权限=============1
消息推送权限=============1

求解答???

[解决办法]
按你这个套路,恐怕得把复选框改为双单选框,也即:0:无 1:有。

否则复选框没有选中时,POST中的数据根本不会包含该复选框信息,服务器端也就不会发生set动作。

热点排行