`
sophia_230
  • 浏览: 120649 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

ActionRedirect 在 struts action 中重定向url

阅读更多

struts的action中使用ActionForward来转发,redirect  

在做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的重定向和转发实例

    在Struts中,我们通常使用`ActionRedirect`类或者在ActionSupport类中使用`redirectAction()`方法来实现重定向。 2. **转发(Forward)**:转发发生在服务器端,不会产生新的HTTP请求。服务器接收到请求后,不直接...

    struts2 重定向

    总结来说,Struts2中的重定向是一种重要的URL导航技术,可以通过多种方式实现,包括`ActionRedirect`对象、`Results`配置、`ActionSupport`的`redirect()`方法和注解方式。理解并熟练掌握这些方法,对于开发高质量的...

    struts2重定向实例源码

    在Struts2中,Action的执行结果可以被导向到不同的视图,这其中包括了"redirect"和"redirectAction"两种重定向结果类型。这两种结果类型在实际应用中有着重要的作用,特别是对于处理URL重写、防止重复提交等问题。 ...

    struts2中的url

    本文将详细介绍Struts2框架中有关URL配置的相关知识点,包括请求转发、内部action处理以及请求重定向等核心概念,并深入探讨Struts2中 `&lt;s:url&gt;` 标签的应用。 #### 请求转发至JSP页面 在Struts2中,默认情况下,...

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...

    struts2 result转向到action

    在 Struts2 中使用 `redirect-action` 来实现 Action 之间的跳转是一种常见的做法,特别是在需要按顺序执行多个 Action 的业务场景中。通过这种方式,不仅可以保持应用程序的良好结构,还能有效地组织业务流程。同时...

    struts2防止表单重复提交--重定向

    它允许你在重定向时传递参数,保持业务流程的连续性: ```xml &lt;action name="submitForm" class="com.example.SubmitFormAction"&gt; &lt;param name="actionName"&gt;nextAction &lt;param name="param1"&gt;value1 &lt;/...

    struts拦截器和url放行

    5. **放行配置**: 在Struts2的配置文件(如struts.xml)中,可以设定哪些URL不通过`LoginInterceptor`。这样,即使用户未登录,也能访问这些特定的URL。 6. **组合使用**: 一个应用可能有多个拦截器,它们可以形成...

    Struts2下使用urlReWrite的最简实例(MyEclipse工程)

    在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL重写功能。首先,你需要确保已经安装了MyEclipse,并且在项目中引入了Struts2和urlRewrite的相关依赖库。 ...

    Struts中action技术实现对数据的增删改查

    在Struts应用中,我们需要在Struts配置文件(通常是struts-config.xml或struts2的struts.xml)中定义Action的映射,包括Action类的全限定名、与之关联的JSP页面以及HTTP请求的映射路径。 例如: ```xml &lt;action ...

    struts2 action跳转action传参数

    如果需要传递参数,则可以在URL中手动添加参数,例如:`action2.action?param1=value1&param2=value2`。 #### 总结 通过以上两种方式,我们可以在Struts2框架中轻松地实现Action之间的跳转以及参数传递。使用`...

    JS调用Struts中的Action

    - **通过URL触发Action**:直接在JavaScript中构造包含Action名称及参数的URL,并通过`window.location.href`来实现。 ##### 3. **具体实现方法** 下面将详细介绍几种常见的JavaScript调用Struts Action的方法: ...

    使用urlrewrite重写struts2的action

    `type="redirect"`表示客户端会接收到一个302重定向响应,`%{contextPath}`是当前应用的上下文路径,`${name}`则是从原始URL中提取的参数。 4. **启动应用**:现在,当你运行应用并访问原始URL时,`URL Rewrite ...

    struts2中result类型之redirectAction

    1. 避免了请求参数在URL中的显示,提高了安全性。 2. 防止了重复提交,因为新的请求会覆盖旧的请求。 3. 可以改变当前请求的URL,有助于实现URL的可读性和SEO优化。 缺点: 1. 由于涉及到两次HTTP请求,性能上可能...

    struts2改写url后缀demo

    在Struts2中,URL通常以`.do`结尾,这是默认的Action映射后缀。然而,为了提供更加用户友好的URL和提高搜索引擎优化(SEO),开发者可能希望将这些后缀更改为更自然的扩展名,如`.html`。本教程将深入探讨如何在...

    struts2 Https 配置

    2. **Struts2配置**:在Struts2的应用中,我们需要确保Action请求被重定向到HTTPS。这可以通过在`struts.xml`配置文件中使用`&lt;constant&gt;`标签设置`struts.action.excludePattern`属性来实现。 ```xml ...

    过滤器 Struts2全局变量 action转化do

    在struts.xml文件中,开发者定义Action类及其对应的URL路径,使得用户请求可以通过URL直接触发特定业务逻辑的执行。 4. **do方法**:在Struts2中,Action类通常包含一个名为execute()的方法,这是默认的执行方法,...

    在struts1中使用拦截器——saif-0.1.jar

    在Struts1中,拦截器是框架的核心组件之一,它们提供了扩展功能和处理请求的能力,而无需修改Action类本身。本文将深入探讨在Struts1中如何使用拦截器,并以saif-0.1.jar为例,解释其在实际项目中的应用。 首先,...

    struts2 对action中的所有方法进行校验

    总的来说,Struts2提供了灵活且强大的数据校验机制,无论是在XML配置文件中定义,还是利用注解,甚至自定义校验逻辑,都能有效地保证Action中各个方法的输入数据合法,从而提高应用程序的稳定性和安全性。...

    java struts如何隐藏提交后缀.action, .do.zip

    "网站根目录index.jsp参数ptr=xxx可以写为根目录参数ptr=xxx即不显示jsp文件名",这意味着可以通过在URL中传递参数而不是直接指定JSP文件名,从而避免暴露JSP文件的路径。例如,访问`/?ptr=xxx`而不是`/index.jsp?...

Global site tag (gtag.js) - Google Analytics