一个java web的struts的action处理问题。请指教!
我的javaweb项目采用的Struts1.2(不是struts2)+Spring+Hibernate框架,在一个jsp中有登陆表单form,交由action="/boo...
我的java web项目采用的Struts1.2(不是struts 2)+Spring+Hibernate框架,在一个jsp中有登陆表单form,交由action="/book/login.do"处理,这样最终会交给action处理类LoginAction(继承自struts 1的Action类)的execute()方法来处理,并将能得到期望的结果(执行成功且跳转到某一页面)。但是,当我将jsp页面的action改为action="/book/login.do?method=validateLogin",同时将LoginAction类中的execute方法名改为validateLogin,在struts的配置文件struts-config.xml中相应的action元素中加上了parameter="method"属性,即用LoginAction类中指定的方法validateLogin来处理login.do,从最终结果来看貌似没有执行这个方法(因为我在这个方法体内部加了控制台输出语句,如果方法被执行的话会有字符串输出至控制台)。请问这是为什么呢?难道是还差哪些配置吗?急急急啊,在线等!!谢谢!我这样做是想在一个action处理中写多个方法,处理不同的action请求,不然,得为每个action写一个action类,在使用其中的execute方法,太麻烦了。
展开
展开全部
有两种方法解决你的问题
1:你现在的LoginAction是继承的struts1的Action类,这样通过你的配置时不能达到效果的,应该将你的LoginAction的继承类改为DispatchAction类,就可以了
2:不改变继承类也行,你在你的execute()方法里面,获取method这个参数,比如你的method参数传进的是 validateLogin,你在你的execute()方法里面这样写:
String method = request.getParameter("method");
if("validateLogin".equals(method)){
return validateLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response);
}
希望对你有帮助 , 共勉!
1:你现在的LoginAction是继承的struts1的Action类,这样通过你的配置时不能达到效果的,应该将你的LoginAction的继承类改为DispatchAction类,就可以了
2:不改变继承类也行,你在你的execute()方法里面,获取method这个参数,比如你的method参数传进的是 validateLogin,你在你的execute()方法里面这样写:
String method = request.getParameter("method");
if("validateLogin".equals(method)){
return validateLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response);
}
希望对你有帮助 , 共勉!
佳达源
2024-10-28 广告
2024-10-28 广告
AR0144CSSM20SUKA0-CPBR这款产品,作为我司产品线中的重要一员,集成了高精度的传感器技术与先进的图像处理算法,广泛应用于安防监控、工业自动化及机器视觉等领域。其卓越的性能与稳定性,确保了在各种复杂环境下的精准数据采集与高效...
点击进入详情页
本回答由佳达源提供
展开全部
一个Action实现多个方法,“改为action="/book/login.do?method=validateLogin" ”这种方式我没用过。要么换种方法比如:Login!login.action.去访问Action里面的login方法!
追问
具体是怎么样的? "Login!login.action"写在哪里?Login代表什么?login在这里是一个action请求还是action处理类中的一个方法??这种写法还需要什么配置吗?
追答
地址栏:Login!login.action.第一个Login为Login是Action的名字,感叹号后面的是Action方法,
这个事struts.xml. 另外web.xml要改一下!
//下面写每一个方法名
/index.jsp
/register.jsp
...
...
接着写其他Action
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
action="/book/login.do!validateLogin ”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只要改下你那个action的类,继承至DispatchAction
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询