jsp页面传值对象为空,求解?
public void save(Role role, int[] privilegeIds)插入的角色和权限的一个hashset方法,Role的映射表
private int id;
private String name;
private Set<Admin> admin_Infos;
private Set<Privilege> privileges;
action中
private int[] privilegeIds;
private List<Privilege> privilegeList;
private List<Role> roles;
private Role role;
private RoleService roleService;
public String add(){
privilegeList = privilegeService.findAll();
System.out.println("又执行了");
if(role==null){
System.out.println("是空的");
return "add";
}
roleService.save(role, privilegeIds);
return "add";
}
role_add.jsp中关键部分
<div class="text_info clearfix"><span>角色名称:</span></div>
<div class="input_info">
<input type="text" class="width200" name="name" />
<span class="required">*</span>
<div class="validate_msg_medium">不能为空,且为20长度的字母、数字和汉字的组合</div>
</div>
<div class="text_info clearfix"><span>设置权限:</span></div>
<div class="input_info_high">
<div class="input_info_scroll">
<s:checkboxlist name="privilegeIds"
list="privilegeList"
listKey="id"
listValue="name">
</s:checkboxlist>
每次提交role_add.jsp传值,都是role一直是空的,也就没法执行save方法,不知道哪里错了,谢谢了 --------------------编程问答-------------------- 表单定义的属性名称与后台封装不匹配导致的。
<input type="text" class="width200" name="name" /> 换成
<input type="text" class="width200" name="role.name" />等等 --------------------编程问答-------------------- 1,你jsp页面的值是放在form里面提交的?
2,配置文件呢?路径是否正确,类找到了没?
3,前台与后台对应的属性名称是否一致?
4,你getter方法呢?
5,action有没有写正确! --------------------编程问答--------------------
对头 还要给role对象添加get set方法
--------------------编程问答-------------------- Role的映射表 只有set方法没有get方法 --------------------编程问答-------------------- <input type="text" name="对象.属性" />
比如你的action中声明了Role role;同时记得加上get/set方法
其中Role对象中含有name字段。
那么你就可以使用
<input type="text" name="role.name" />
你js中写的name=“name”,这样的话,你actino中必须定义一个String name来接收。
补充:Java , Java EE