struts的action中使用ActionForward来转发,redirect <script src="http://blog.csdn.net/count.aspx?ID=1576781&amp;Type=Rank"></script>
![](http://blog.csdn.net/images/star.gif)
![](http://blog.csdn.net/images/star.gif)
在做struts时,使用struts的forward来转交页面.一般这样配置.
<forward name="success" path="/listNews.do" />
有时候想用redirect也比较麻烦,因为struts里没有<redirect>标签.
难道要用一个中转的jsp页面使用<logic:redirect page=""/>来转接.我决不!
struts里使用ActionForward来forward,应该可以重载或者它里面有什么方法可以实现这个功能的。
于是struts1.2.7诞生了ActionRedirect子类.
API 是这么调用的.
ActionRedirect redirect = new ActionRedirect(mapping.findForward("doRedirect"));
redirect.addParameter("param1","value1");
redirect.addParameter("param2","2");
redirect.addParameter("param3","3.0");
return redirect;
看ActionRedirect的源码,很简单的,只是调用了一个构造函数来初始化它的ForwardConfig的实例变量.
如果我们单纯使用ActionForword的setRedirect(true);来设置forward,是会抛出例外的.
IllegalStateException("Configuration is frozen");
看ActionRedirect的源代码吧,不想多说了.
//生成这个forward时,configured属性已经被设置为true了,所以只能新建一个forward,configured默认才为false
//怎么生成forward的,以后找.
问题是redirect会把request里的东东都清空了.
private ActionForward addFrns(SourcingAchatListForm form, HttpServletRequest request, ActionMapping mapping, HttpServletResponse response,
String userIdSelected, String artCodeStr, boolean isPalette) {
Integer codeFrns = Integer.parseInt(request.getParameter("codeFrns"));
Integer codeArt = Integer.parseInt(request.getParameter("codeArt"));
fam.safeCreateFournisseurArticle(codeArt,codeFrns);
ActionRedirect redirect = new ActionRedirect(mapping.findForward("self"));
redirect.addParameter("waction", "actualiser");
redirect.addParameter("pageNumber", request.getParameter("pageNumber"));
redirect.addParameter("wareHousepageNum", request.getParameter("wareHousepageNum"));
return redirect;
}
* @struts.action-forward name="self" path="/sourcingAchatList.do"
分享到:
相关推荐
在Struts中,我们通常使用`ActionRedirect`类或者在ActionSupport类中使用`redirectAction()`方法来实现重定向。 2. **转发(Forward)**:转发发生在服务器端,不会产生新的HTTP请求。服务器接收到请求后,不直接...
总结来说,Struts2中的重定向是一种重要的URL导航技术,可以通过多种方式实现,包括`ActionRedirect`对象、`Results`配置、`ActionSupport`的`redirect()`方法和注解方式。理解并熟练掌握这些方法,对于开发高质量的...
除了在特定Action配置中定义转发和重定向,我们还可以在struts-config.xml的全局部分定义,这样可以在多个Action中复用: ```xml ``` 5. 模型驱动(ModelDriven)与值栈(ValueStack) Struts1.3支持...
4. **路径和Action映射**:在Struts2中,URL路径是基于Action的,而不是直接指向JSP页面。绝对路径可以通过`basepath`变量访问,动态方法调用可以使用`!method`的形式,如`student*`用于自动匹配`studentadd`等...
在传统的Struts2配置中,我们通常会在`struts.xml`文件中定义Action类、结果类型和结果页面等。然而,通过使用注解,我们可以将这些配置直接写在Action类和方法上,使得代码更加简洁和易于维护。 首先,`@Action`...
在Struts中,这些操作可以通过ActionForward和ActionRedirect对象完成,更加方便和灵活。 3. **动作映射**:Struts的struts-config.xml文件定义了每个请求与哪个Action之间的映射,这使得请求的路由更加规范和易于...
6. **返回结果**:在Action执行完成后,返回一个ActionForward或ActionRedirect,指示Struts框架跳转到哪个JSP页面显示结果。在这个页面中,可以展示保存的文本内容。 7. **展示内容**:在响应的JSP页面中,可以...
在给出的代码片段中,可以看到一个`ActionRedirect`实例的创建,这表明Action执行完业务逻辑后决定重定向到另一个页面。`ActionRedirect`继承自`ActionForward`,但它的主要区别在于它会触发浏览器发起一个新的HTTP...
在Struts框架中,`testRedirect`是一个典型的用于测试用户登录重定向(redirect)和转发(forward)功能的示例。Struts是一个基于MVC(Model-View-Controller)架构的Java Web应用框架,它帮助开发者组织和管理复杂...