请教各位大侠一个struts 1.x的问题

chenyinglong0712 2011-04-17 12:52:15
我在试图层中我写了这些代码
<html:form action="users.do">
<html:hidden property="op" value="doUpdate"/>
${sysUserForm.item.usrName }:   
<html:select property="item.role.roleId">
<html:option value="1">--未分配--</html:option>
<html:optionsCollection name="list_role" label="roleName" value="roleId"/>
</html:select>
   
<html:submit></html:submit>
</html:form>

我在逻辑层中这样处理:
public ActionForward doUpdate(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
SysUserForm userForm=(SysUserForm)form;
if(userForm.getItem().getRole().getRoleId()==1) {
userForm.getItem().setRole(null);
}
usersBiz.updateUser(userForm.getItem());
return mapping.findForward("userInfo");
}


但是:出现这样一个错误:org.apache.commons.beanutils.NestedNullException: Null property value for 'role'
这是为什么???
可能原因是:这个userForm.getItem().setRole(null);被我赋值为空了。
我是通过hibernate把数据进行了一个懒惰加载“lazy='false'”.
我这样去解决过:userForm.getItem().setRole(new SysRole());也不行,为什么??
但是怎么解决呢???
急求....谢谢了
...全文
72 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sally-wang 2011-04-19
  • 打赏
  • 举报
回复
<html:select property="item.role.roleId">
你这里的item应该是空的。
kai27ks 2011-04-17
  • 打赏
  • 举报
回复
问题是在你的userForm里没有取到值啊! 断点跟进去getRole那边看看
chenyinglong0712 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lovemichael2 的回复:]
<html:optionsCollection name="list_role" label="roleName" value="roleId"/>

不应该直接写成value="roleId"吧
[/Quote]

呵呵,这样写,绝对是对的!
问题的根本不是这个?
lovemichael2 2011-04-17
  • 打赏
  • 举报
回复
<html:optionsCollection name="list_role" label="roleName" value="roleId"/>

不应该直接写成value="roleId"吧
chenyinglong0712 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luman2002 的回复:]
if(null!=userForm.getItem().getRole()&&userForm.getItem().getRole().getRoleId()==1) {
userForm.getItem().setRole(null);
}
[/Quote]

我出错的原因是:当我在该对象为空的时候,页面上的标签会报错。说
<html:select property="item.role.roleId">
这个里面的role找不到。
解决一下。谢谢....
luman2002 2011-04-17
  • 打赏
  • 举报
回复
if(null!=userForm.getItem().getRole()&&userForm.getItem().getRole().getRoleId()==1) {
userForm.getItem().setRole(null);
}

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧