struts2 注册登录出了个问题

qqliang1314 2012-03-29 09:11:42
能正常登录,注册时出了问题,好几天了,求高手解决(我改过表单和配置文件的命名空间,最后的结果是不出错也没结果,只停留在注册页面)

错误提示:
警告: Could not find action or resul
There is no Action mapped for namespace / and action name register. - [unknown location]

at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
at java.lang.Thread.run(Thread.java:662)


register.jsp表单部分代码:
<form action="register" method="post" namespace="/strutsregister" validate="true">


register.xml 代码:
<package name="strutsregister" namespace="/strutsregister" extends="struts-default" >
<action name="register" class="com.strutslogin.action.RegisterAction">
<result name="success" >/register.jsp</result>
<result name="input">/register.jsp</result>
</action>
</package>

RegisterAction代码:
package com.strutslogin.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.strutslogin.DAO.UserDao;
import com.strutslogin.DAOImpl.UserDaoImpl;
import com.strutslogin.model.User;
public class RegisterAction extends ActionSupport {
private User user = new User();
UserDao userDao = new UserDaoImpl();
private String result;

private String name;
private String password;
private String repassword;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRepassword() {
return repassword;
}
public void setRepassword(String repassword) {
this.repassword = repassword;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}



private String email;
//实现ModernDriver的getModel方法
//public User getModel() {
// return user;
// }
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}


//处理登陆请求的execute方法
public String exectue() throws Exception{

this.user.setName(name);
this.user.setPassword(password);
this.user.setRepassword(repassword);
this.user.setEmail(email);
try{
this.userDao.add(user);
}catch(Exception e){
this.addActionError(e.getMessage());
return INPUT;
}
result= "用户<" + user.getName() + ">注册成功";


return result;
}


}
...全文
212 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylovep 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
return result; 修改为return SUCCESS;

return result;表示配置中有一个<result>节点的name为 result这个字符串的内容。
[/Quote]
++
feihumingyue 2012-03-30
  • 打赏
  • 举报
回复
很明显,你的execute()返回的值既不是“success”也没有“input”,result 值与xml文件的不一致。
「已注销」 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

很明显,你的execute()返回的值既不是“success”也没有“input”,result 值与xml文件的不一致。
[/Quote]
+1
dnsel 2012-03-30
  • 打赏
  • 举报
回复
JSP文件和XML文件中的namespace属性值先去掉,再把return result; 修改为return SUCCESS
  • 打赏
  • 举报
回复
1楼 2楼说的对,你先按照1 2 楼的改如果还不好使,你就让struts2跳转到自己的方法吧,别用exectue()了
qqliang1314 2012-03-29
  • 打赏
  • 举报
回复
注册成功后会弹出一个对话框,显示result内容,提示注册成功,所以是return reslut
coooliang 2012-03-29
  • 打赏
  • 举报
回复
return result; 修改为return SUCCESS;

return result;表示配置中有一个<result>节点的name为 result这个字符串的内容。
xieshengjun2009 2012-03-29
  • 打赏
  • 举报
回复
form 里哪来的namespace属性!
把action="strutsregister/register"

67,513

社区成员

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

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