Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Struts1 Hibernate登录页java.lang.ClassCastException_Hibernate_Struts 1 - Fatal编程技术网

Struts1 Hibernate登录页java.lang.ClassCastException

Struts1 Hibernate登录页java.lang.ClassCastException,hibernate,struts-1,Hibernate,Struts 1,我不熟悉Struts和Hibernates。我有一个家庭作业来创建登录、注册和更改密码页面。我已经能够创建登录页面,但是我一直得到一个java.lang.ClassCastException。我不知道我做错了什么,我已经做了一段时间了,请帮帮我。非常感谢。以下是我的详细信息(长度很抱歉): **Login.jsp** ...... **struts-config.xml** ..... --> ..... **MessageResource.properties** label.usernam

我不熟悉Struts和Hibernates。我有一个家庭作业来创建登录、注册和更改密码页面。我已经能够创建登录页面,但是我一直得到一个java.lang.ClassCastException。我不知道我做错了什么,我已经做了一段时间了,请帮帮我。非常感谢。以下是我的详细信息(长度很抱歉):

**Login.jsp**
......

**struts-config.xml** ..... --> ..... **MessageResource.properties** label.username=登录详细信息 label.password=密码 欢迎 error.username=未输入用户名。 error.password=未输入密码。 **success.jsp** ..... 欢迎 以下是必要的细节 ${ulogin.电话号码} ${ulogin.name} 注销
..... **登录表单** 公共类LoginForm扩展了ActionForm{ 私有字符串用户名; 私有字符串密码; 公共ActionErrors验证(ActionMapping映射, HttpServletRequest(请求){ ActionErrors ActionErrors=新的ActionErrors(); if(userName==null | | userName.trim().equals(“”){ actionErrors.add(“用户名”),newactionMessage(“error.userName”); } 试一试{ if(password==null | | password.trim().equals(“”){ actionErrors.add(“密码”),newactionMessage(“error.password”); } }捕获(例外e){ e、 printStackTrace(); } 返回操作错误; } 公共字符串getUserName(){ 返回用户名; } public void setUserName(字符串用户名){ this.userName=用户名; } 公共字符串getPassword(){ 返回密码; } public void setPassword(字符串密码){ this.password=密码; } 公共字符串getName(){ 返回名称; } 公共void集合名(字符串名){ this.name=名称; } 公共int getPhone_号码(){ 返回电话号码; } 公共无效设置电话号码(内部电话号码){ this.phone\u number=电话号码; } 私有字符串名称; 私人国际电话号码; 公共布尔值isNew_user(){ 返回新用户; } public void setNew_user(布尔值new_user){ this.new\u user=新用户; } 布尔新用户; 私有int-id; 公共int getId(){ 返回id; } 公共无效集合id(内部id){ this.id=id; } **登录** 公共ActionForward执行(ActionMapping映射、ActionForm表单、, HttpServletRequest请求,HttpServletResponse响应) 抛出异常{ Session Session=HibernateUtil.getSessionFactory().openSession(); 事务trans=null; LoginForm LoginForm=(LoginForm)表单; 字符串名称=loginForm.getUserName(); 字符串password=loginForm.getPassword(); 布尔值new_user=false; LoginForm lform=null; 字符串result=“failure”; 试一试{ trans=session.beginTransaction(); List ulogin=session.createQuery(“来自LoginForm”).List(); for(Iterator Iterator=ulogin.Iterator();Iterator.hasNext();){ lform=(LoginForm)迭代器.next(); if(lform.getUserName().equals(name)和&lform.getPassword().equals(password)和&lform.isNew\u user()==new\u user){ 结果=“成功”; 打破 } if(lform.getUserName().equals(name)和&lform.getPassword().equals(password)和&lform.isNew\u user()!=new\u user){ 结果=“失败1”; } if(lform.getUserName().equals(name)和&!lform.getPassword().equals(password)){ 结果=“失败2”; 打破 } } 如果(结果等于(“成功”)){ LoginForm forml=新的LoginForm(); forml.setUserName(lform.getUserName()); setName(lform.getName()); forml.setPhone_number(lform.getPhone_number()); forml.setPassword(lform.getPassword()); 乌洛金.加(表1); setAttribute(“ulogin”,ulogin); } 如果(结果等于(“失败”)){ request.setAttribute(“msg”,“输入的电子邮件和密码错误”); } 如果(结果等于(“失败2”)){ request.setAttribute(“msg10”,“输入的密码错误”); } } 捕获(休眠异常e){ 如果(trans!=null) trans.rollback(); e、 printStackTrace();} 返回映射。findForward(结果); **user.hbm.xml** **编译器给出的错误消息** java.lang.ClassCastException:com.company.strutser.LoginForm不能强制转换为org.apache.struts.action.action
ClassCastException的原因是,在struts-config.xml中,您将
LoginForm
映射为struts操作,而不是
LoginAction

将操作的映射修改为

<action path="/login" name="LoginForm" validate="true" input="/login.jsp"
        type="com.company.strutsuser.LoginAction">


这似乎很有效,非常感谢。虽然我现在遇到另一个错误javax.servlet.jsp.JspException:Exception创建类的bean。您认为问题出在哪里?感谢您的帮助,我解决了这个问题,但现在是关于连接到成功页面的时候。它生成错误:error:HH000123:IllegalArgumentException在类中:com.company.strutuser.LoginForm,属性的setter方法:电话号码2013年8月5日8:22:17 PM org.hibernate.property.BasicPropertyAccessor$BasicSetter设置错误:HHH000091:预期类型:int,act
<action path="/login" name="LoginForm" validate="true" input="/login.jsp"
        type="com.company.strutsuser.LoginAction">