错误页面显示如下:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet execution threw an exception
root cause java.lang.Error: Unresolved compilation problem:
This method must return a result of type ActionForward com.shenzhou.struts.action.LoginAction.execute(LoginAction.java:29)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
项目代码中有一句有红叉:public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {。。
高手指教 谢谢!!!
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet execution threw an exception
root cause java.lang.Error: Unresolved compilation problem:
This method must return a result of type ActionForward com.shenzhou.struts.action.LoginAction.execute(LoginAction.java:29)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
项目代码中有一句有红叉:public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {。。
高手指教 谢谢!!!
This method must return a result of type ActionForward
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
LoginForm lf=(LoginForm)form;
String username=lf.getUsername().trim();
String password=lf.getPassword().trim();
String usernamegbk= new String( username.getBytes("ISO-8859-1"),"gbk");
System.out.println(usernamegbk);
username=usernamegbk;
String premission=lf.getPremission();
if(premission.equals("user")){
UserMgr um=UserMgr.getInstance();
try{
User u= um.check(username, password);
HttpSession session=request.getSession();
session.setAttribute("user", u);
}catch(PasswordException e){
return mapping.findForward("error");
}catch(UserNotFoundException e){
request.setAttribute("username", username);
return mapping.findForward("error");
}
return mapping.findForward("success1");
}else if(premission.equals("mgr")){
ManagerService ms=ManagerService.getInstance();
try{
Manager m= ms.check(username, password);
HttpSession session=request.getSession();
session.setAttribute("mgr", m);
}catch(PasswordException e){
return mapping.findForward("error");
}catch(UserNotFoundException e){
request.setAttribute("username", username);
return mapping.findForward("error");
}
return mapping.findForward("success");
}else if(premission.equals("loo")){
LookerService lo=LookerService.getInstance();
try{
Looker l= lo.check(username, password);
HttpSession session=request.getSession();
session.setAttribute("loo", l);
}catch(PasswordException e){
return mapping.findForward("error");
}catch(UserNotFoundException e){
request.setAttribute("username", username);
return mapping.findForward("error");
}
return mapping.findForward("success2");
}else if(premission.equals("val")){
ValuerService va=ValuerService.getInstance();
try{
Valuer v= va.check(username, password);
HttpSession session=request.getSession();
session.setAttribute("val", v);
}catch(PasswordException e){
return mapping.findForward("error");
}catch(UserNotFoundException e){
request.setAttribute("username", username);
return mapping.findForward("error");
}
return mapping.findForward("success3");
}
}
return mapping.findForward("success");
你登陆总得判断下登录成功还是失败吧?你的LoginAction中必然要有上面2行代码,当然,配置文件中还要配置如果返回failure跳转到哪个页面,返回success跳转到哪个页面
<action-mappings>
<action path="/login"
type="com.shenzhou.struts.action.LoginAction"
name="LoginForm"
scope="request"
>
<forward name="success" path="/admin/AdminIndex.jsp"></forward>
<forward name="error" path="/admin/error.jsp"></forward>
<forward name="success1" path="/user/userM.jsp"></forward>
<forward name="success2" path="/looker/AdminIndex.jsp"></forward>
<forward name="success3" path="/valuer/AdminIndex.jsp"></forward>
</action>