求救高手,谢谢!HTTP Status 500 - 错误

yang_xb 2008-04-16 11:56:39
在 Status应用下,写一用户注册页面提交时页面报以下错误:
javax.servlet.ServletException: Action[/register1] does not contain specified method (check logs)
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
java.lang.NoSuchMethodException: Action[/register1] does not contain specified method (check logs)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:264)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.apache.struts.actions.MappingDispatchAction.execute(MappingDispatchAction.java:169)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

说的是找不到指定的方法register1,但是有这个方法的啊;具体如下:
register.jsp :
<%@page language="java" contentType="text/html;charset=gbk"%>
<center>
<h2><font color="green">用户注册</font></h2>
</center>
<form method="post" action="<%=request.getContextPath()%>/register1.do">
<table border="0" align="center">
<tr>
<td>用户名*:</td>
<td><input type="text" name="userName" size="10"></td>
<tr>
<td>密码*:</td>
<td><input type="password" name="password" size="10"></td>
<tr>
<td>重复密码*:</td>
<td><input type="password" name="repeatPassword" size="10"></td>
<tr>
<td>邮政编码:</td>
<td><input type="text" name="postCode" size="10"></td>
<tr>
<td>移动电话*:</td>
<td><input type="text" name="callPhone" size="15"></td>
<tr>
<td>办公电话:</td>
<td><input type="text" name="officePhone" size="15"></td>
<tr>
<td>家庭电话:</td>
<td><input type="text" name="homePhone" size="15"></td>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="30"></td>
<tr>
<td>家庭住址:</td>
<td><input type="text" name="homeAddress" size="50"></td>
</table>
<center>
<input type="submit" value="提交">
</center>
</form>
<center>
<h3><font color="red">注意:</font><font color="green">带*号的必须填写</font></h3>
</center>

struts-config.xml :
</action>
<action path="/register1" type="com.yangxb.soppingcart.action.UserAction" parameter="register1">
<forward name="login" path="/page/login.jsp"/>
</action>
Action 类:
public ActionForward register1(ActionMapping mapping,ActionForm form
,HttpServletRequest request,HttpServletResponse response){
String userName=request.getParameter("userName");
String password=request.getParameter("password");
String postCode=request.getParameter("postCode");
String callPhone=request.getParameter("callPhone");
String officePhone=request.getParameter("officePhone");
String homePhone=request.getParameter("homePhone");
String email=request.getParameter("email");
String homeAddress=request.getParameter("homeAddress");

User user=new User();
user.setName(userName);
user.setPassword(password);
user.setPostCode(postCode);
user.setCallPhone(callPhone);
user.setOfficePhone(officePhone);
user.setHomePhone(homePhone);
user.setEmail(email);
user.setAddress(homeAddress);
UserService us=new UserService();
try {
us.Register(user);
}catch (Exception e) {
e.printStackTrace();
}
return mapping.findForward("login");
}
求救位高手师兄,谢谢.
...全文
1062 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyang0601 2009-12-15
  • 打赏
  • 举报
回复
,呵呵,那个parameter="regist"这个参数,在jsp页面并没有进行设置,应该报错了!!jsp页面
<input type="hidden" name = "regist" value = "方法名(regist1)">
huilove87 2009-07-14
  • 打赏
  • 举报
回复
public ActionForward musicueMp(ActionMapping mapping , ActionForm form ,HttpServletRequest request,HttpServletResponse response){} 这个方法里的参数必须按照我上面里的那样写。顺序不能写反了。如果写反了就抱你上面那个错。。
dracularking 2008-04-17
  • 打赏
  • 举报
回复
parameter不要和path同名试试
悠游一叶 2008-04-17
  • 打赏
  • 举报
回复
要试用自定义方法 你的action必须继承 DispatchAction 类
luoxinabc12345 2008-04-17
  • 打赏
  • 举报
回复
你看你Action的类是不是继承自MappingDispatchAction
如果不是改过来!
6216 2008-04-17
  • 打赏
  • 举报
回复
<form method="post" action=" <%=request.getContextPath()%>/register1.do">
提交form表单只会提交到这个action的execute()方法吧!!!


public ActionForward register1(ActionMapping mapping,ActionForm form
,HttpServletRequest request,HttpServletResponse response){

...............
}


商科程序员 2008-04-17
  • 打赏
  • 举报
回复
是不是继承对了类?
dispatcher
yang_xb 2008-04-17
  • 打赏
  • 举报
回复
谢谢师兄的回复,parameter和path的名字改不一样了,但是还是报同样的错误!
javax.servlet.ServletException: Action[/register1] does not contain specified method (check logs)
java.lang.NoSuchMethodException: Action[/register1] does not contain specified method (check logs)
yang_xb 2008-04-17
  • 打赏
  • 举报
回复
我的Action类是继承了MappingDispatchAction的,register1是我在jsp中的请求路径和在xml中的path:
Action中的自定义方法是regist方法;
<form method="post" action="<%=request.getContextPath()%>/register1.do">

<action-mappings >
<action path="/register1" type="com.yangxb.soppingcart.action.UserAction" parameter="regist">
<forward name="login" path="/page/login.jsp"/>
</action>
</action-mappings>

UserAction类

public class UserAction extends MappingDispatchAction{
public ActionForward regist(ActionMapping mapping,ActionForm form
,HttpServletRequest request,HttpServletResponse response){
String userName=request.getParameter("userName");
String password=request.getParameter("password");
String postCode=request.getParameter("postCode");
String callPhone=request.getParameter("callPhone");
String officePhone=request.getParameter("officePhone");
String homePhone=request.getParameter("homePhone");
String email=request.getParameter("email");
String homeAddress=request.getParameter("homeAddress");

User user=new User();
user.setName(userName);
user.setPassword(password);
user.setPostCode(postCode);
user.setCallPhone(callPhone);
user.setOfficePhone(officePhone);
user.setHomePhone(homePhone);
user.setEmail(email);
user.setAddress(homeAddress);
UserService us=new UserService();
try {
us.Register(user);
}catch (Exception e) {
e.printStackTrace();
}
return mapping.findForward("login");
}
}

struts-config.xml:

<struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<action-mappings >
<action path="/register1" type="com.yangxb.soppingcart.action.UserAction" parameter="regist">
<forward name="login" path="/page/login.jsp"/>
</action>
</action-mappings>
</struts-config>

regiser.jsp:

<form method="post" action="<%=request.getContextPath()%>/register1.do">
<table>
·········
·········
</table>
<center>
<input type="submit" value="提交">
</center>
</form>

报错误:
javax.servlet.ServletException: Action[/register1] does not contain specified method (check logs)

org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

java.lang.NoSuchMethodException: Action[/register1] does not contain specified method (check logs)

org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:264)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.apache.struts.actions.MappingDispatchAction.execute(MappingDispatchAction.java:169)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
itysh 2008-04-17
  • 打赏
  • 举报
回复
register1是你自定义的方法

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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