Struts1 Hibernate登录页java.lang.ClassCastException
我不熟悉Struts和Hibernates。我有一个家庭作业来创建登录、注册和更改密码页面。我已经能够创建登录页面,但是我一直得到一个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
**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">