struts的action中使用ActionForward来转发,redirect <script src="http://blog.csdn.net/count.aspx?ID=1576781&amp;Type=Rank"></script>
在做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()`方法和注解方式。理解并熟练掌握这些方法,对于开发高质量的...
在Struts2中,Action的执行结果可以被导向到不同的视图,这其中包括了"redirect"和"redirectAction"两种重定向结果类型。这两种结果类型在实际应用中有着重要的作用,特别是对于处理URL重写、防止重复提交等问题。 ...
本文将详细介绍Struts2框架中有关URL配置的相关知识点,包括请求转发、内部action处理以及请求重定向等核心概念,并深入探讨Struts2中 `<s:url>` 标签的应用。 #### 请求转发至JSP页面 在Struts2中,默认情况下,...
Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...
在 Struts2 中使用 `redirect-action` 来实现 Action 之间的跳转是一种常见的做法,特别是在需要按顺序执行多个 Action 的业务场景中。通过这种方式,不仅可以保持应用程序的良好结构,还能有效地组织业务流程。同时...
它允许你在重定向时传递参数,保持业务流程的连续性: ```xml <action name="submitForm" class="com.example.SubmitFormAction"> <param name="actionName">nextAction <param name="param1">value1 </...
在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL重写功能。首先,你需要确保已经安装了MyEclipse,并且在项目中引入了Struts2和urlRewrite的相关依赖库。 ...
`type="redirect"`表示客户端会接收到一个302重定向响应,`%{contextPath}`是当前应用的上下文路径,`${name}`则是从原始URL中提取的参数。 4. **启动应用**:现在,当你运行应用并访问原始URL时,`URL Rewrite ...
5. **放行配置**: 在Struts2的配置文件(如struts.xml)中,可以设定哪些URL不通过`LoginInterceptor`。这样,即使用户未登录,也能访问这些特定的URL。 6. **组合使用**: 一个应用可能有多个拦截器,它们可以形成...
如果需要传递参数,则可以在URL中手动添加参数,例如:`action2.action?param1=value1¶m2=value2`。 #### 总结 通过以上两种方式,我们可以在Struts2框架中轻松地实现Action之间的跳转以及参数传递。使用`...
在Struts应用中,我们需要在Struts配置文件(通常是struts-config.xml或struts2的struts.xml)中定义Action的映射,包括Action类的全限定名、与之关联的JSP页面以及HTTP请求的映射路径。 例如: ```xml <action ...
- **通过URL触发Action**:直接在JavaScript中构造包含Action名称及参数的URL,并通过`window.location.href`来实现。 ##### 3. **具体实现方法** 下面将详细介绍几种常见的JavaScript调用Struts Action的方法: ...
1. 避免了请求参数在URL中的显示,提高了安全性。 2. 防止了重复提交,因为新的请求会覆盖旧的请求。 3. 可以改变当前请求的URL,有助于实现URL的可读性和SEO优化。 缺点: 1. 由于涉及到两次HTTP请求,性能上可能...
在Struts2中,URL通常以`.do`结尾,这是默认的Action映射后缀。然而,为了提供更加用户友好的URL和提高搜索引擎优化(SEO),开发者可能希望将这些后缀更改为更自然的扩展名,如`.html`。本教程将深入探讨如何在...
这可以通过在`struts.xml`配置文件中使用`<constant>`标签设置`struts.action.excludePattern`属性来实现。 ```xml <constant name="struts.action.excludePattern" value="^http://.*"/> ``` 3. **过滤器配置*...
本文将深入探讨在Struts1中如何使用拦截器,并以saif-0.1.jar为例,解释其在实际项目中的应用。 首先,理解Struts1拦截器的概念。拦截器是基于Java的动态代理机制实现的,它们按照预定义的顺序对请求进行拦截,执行...
总的来说,Struts2提供了灵活且强大的数据校验机制,无论是在XML配置文件中定义,还是利用注解,甚至自定义校验逻辑,都能有效地保证Action中各个方法的输入数据合法,从而提高应用程序的稳定性和安全性。...
在struts.xml文件中,开发者定义Action类及其对应的URL路径,使得用户请求可以通过URL直接触发特定业务逻辑的执行。 4. **do方法**:在Struts2中,Action类通常包含一个名为execute()的方法,这是默认的执行方法,...
在Java Struts框架中,隐藏提交后缀 `.action` 或 `.do` 主要是为了提高应用程序的安全性和用户体验。这些后缀通常表示Struts框架处理请求的动作映射,暴露这些信息可能会让攻击者更容易发现系统的结构。以下是一些...