struts做得用户资料修改。首先显示用户列表,然后点击某条数据进入修改界面,进入修改页后给文本框赋值时出错。
For input string: "userName"
at java.lang.NumberFormatException.forInputString
从list里点击“修改”后的action如下:
Action如下
public ActionForward modify(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
CompanyUserDAO cuDAO = new CompanyUserDAO();
XtTcCompanyUser xtcu = new XtTcCompanyUser();
String username = request.getParameter("username");
HttpSession session=request.getSession();
List<XtTcCompanyUser> listxtcu=new ArrayList<XtTcCompanyUser>();
String sql=" and 用户名称 like '%" + username + "%'";
listxtcu=cuDAO.getList(sql);
request.setAttribute("companyusermodifylist",listxtcu );
return mapping.findForward("success");
}
编辑页:
<html:form action="/**.do">
pwd : <html:text property="pwd" /><html:errors property="pwd"/><br/>
linkperson : <html:text property="linkperson" ><html:errors property="linkperson"/><br/>
usernae : <html:text property="username" value="${companyusermodifylist.userName}"//><html:errors property="username"/><br/>
<html:submit/><html:cancel/>
</html:form>username的大小写都测试了,不管用。
调试时listxtcu里也有值。

解决方案 »

  1.   


    不是你贴出来的这段代码中的问题而是你其他代码段将字符串转换为数字的问题。。
    错在将“userName”这个字符串转换为数字错误检查一下 你哪里有userName,并不是userName变量,而是变量的值为userName
      

  2.   

    看看错误在那个java类的多少行。。然后debug一下,就能看出来。。
      

  3.   

     value="${companyusermodifylist.userName}"
      list里放的是XtTcCompanyUser对象,XtTcCompanyUser对象里放着userName属性   你这样写表示拿list的userName属性
     value="${companyusermodifylist[0].userName}"
      

  4.   

    错误提示是你将字符串"userName"转成数字的错误,从这点去查。
      

  5.   

    这里还有个错误<html:text property="username" value="${companyusermodifylist.userName}"//>
        userName}"//>建议//去掉一个,//可能会默认被编译
         
      

  6.   

    非常感谢arikara
    按你的方法,解决了