问题标签 [actioncontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1036 浏览

struts2 - struts2中使用Interceptor时无法登录

我有一个小应用学习Struts2 Application

我写了一个管理页面,在里面,我的代码将检查用户是否登录,如果没有,它将重定向到登录页面。

我编写拦截器来检查用户尝试访问但未登录的所有页面,它将将此用户重定向到登录页面。一切正常,但是当我在数据库中输入正确的用户名和密码时,它无法登录,当我删除拦截器时,我可以登录到管理页面

原因可能是拦截器在登录之前和之后检查用户的会话,但也许在某些情况下,我不知道为什么我的应用程序会话为空,尽管我的用户名和密码是真实的,但是当我设置会话时它直到为空。

下面的代码将向您展示我所说的:

登录操作

我的自定义拦截器代码:

我的 struts 配置

当我输入正确的用户名和密码匹配到数据库时,直到重定向到 login.jsp 页面

我对此一无所知

请帮我

非常感谢

0 投票
0 回答
221 浏览

struts2 - 表格数据支柱

我试图从主从表单捕获数据返回一个 JSON 对象,如下所示我的表单类似于这个http://www.vitarara.org/cms/struts_2_cookbook/creating_a_theme我遵循了这个指南http://struts.apache.org /2.1.6/docs/tabular-inputs.html我可以捕获主数据,但如何访问详细信息?我此刻得到的结果是

我的表格是:

我怎样才能获得 dreqproductos?

我的课是

我的行动是

0 投票
0 回答
861 浏览

struts2 - 如何调用从 Struts 2 中的另一个动作重定向的动作的“执行”方法?

我在 struts 2 中从一个动作重定向到另一个动作时遇到问题。

在行动一(称为:StudentZuPruefungHinzufuegen)中,我正在创建操作错误,并希望在行动二(称为:ZeigePruefungsliste)中显示这些错误。

如果我只是使用 struts 中的“redirectAction”,它会在我想显示的地方显示正确的操作错误。问题是框​​架在显示带有操作错误的结果页之前没有调用我的“执行”方法。尽管我在“执行”方法中填写的表格是空的,并且生成的页面实际上是无用的。

有人能告诉我如何告诉 Struts 在重定向到动作二时调用该方法吗?

我的 struts.xml 看起来像这样:

编辑:我的动作类代码。

问候,马库斯

0 投票
2 回答
597 浏览

hibernate - Struts2 插入和更新子表和父表

我用Hibernate和Struts2搭建了一个小网站

我有一个表调用类别

结构如:

ID

类别名称
Parentcatid
...

我的所有文件是:

类别 Pojo

我的行动

和我的表单片段,仅用于下拉框:

更新类别时出现问题,它可以加载类别列表,但选择的是 headerValue 而不是它的父级名称!

0 投票
1 回答
351 浏览

web-applications - 会话对象动作上下文struts2

我正在浏览一些类似这个 SO question的链接,发现每个新的操作请求都会创建一个新的操作上下文。

假设如果有对 Action A 的请求,则创建一个新的 ActionContext AC1。我将 ("xxx","yyy") 之类的内容保存到 AC1 中的会话映射中。

然后是同一用户对操作 B 的请求。如果创建了一个新的 ActionContext AC2,它会以某种方式从 AC1 获取会话对象还是为空?

会话对象不是来自同一浏览器的同一用户的多个请求吗?

0 投票
0 回答
528 浏览

struts2 - struts2+hibernate中不同用户的区分

struts.xml

这是我的迭代器

对不起我的错误我问错了。

我的应用程序管理员和客户中有两种用户。我想区分它们并根据角色动态重定向到特定的命名空间操作。

目前只有管理员身份验证功能。

我想出了这个解决方案。

但我不知道如何根据角色将请求 url 映射到特定名称规范的操作,无论是对客户的“安全”还是对管理员的“管理员”。否则显示全局异常。

admin 的所有 JSP 都位于 admin 文件夹中,而 customer 则位于 WEF-INF 文件夹中的 customer 文件夹中。

我还指定了一些我仍然需要填写但不知道该怎么做的评论。对于 cheking 角色我知道,但对于重定向不知道该怎么做。

我还没有实现这个。但我是带着这个想法而来的。甚至我认为可能或不可能。如果有更好的解决方案可以告诉我。

0 投票
2 回答
409 浏览

java - 启动它但在 s:iterator 标记中不显示

我用

而且我看到回复不是空的,并且在topic.replies;中有元素

在 JSP 中:

没有标题显示。然后我改变我的代码

在 JSP 中

显示标题的值。

我不知道为什么标题没有以第一种方式显示。

0 投票
2 回答
3024 浏览

struts2 - Struts2 ActionContext 和 Response 用于链接动作

我有一个关于 struts2 链接操作的非常复杂的问题,提前感谢您耐心阅读我的问题。我会尽力把它描述清楚。

下面是我的struts.xml:

我的逻辑是这样的:访问/myapp/test时,TestAction1会处理请求;在 TestAction1 中,我像这样“包含”动作 x(我的配置中的第二个动作):

重要的是我在包含“x.action”时使用了自定义的 ResponseIml。

包含后,我返回“成功”,因此结果链接到操作 y(我的配置中的第三个操作);
最后,TestAction2继续处理请求,它会去成功的结果,jsp应该被渲染,但我看到的是一个空白页

jsp文件很简单:index.jsp

我的问题/难题是:

  1. 在 TestAction1 中,如果我从 ServletActionContext 获得响应,我会在包含前后得到不同的响应;在包含之前是默认响应,但在包含之后我得到了我自定义的 ResponseImpl 的一个实例;我希望得到相同的结果:即:默认响应;
  2. 在 TestAction2 中,我从 ServletActionContext 获得响应,我得到的是我自定义的 ResponseIml 的实例。这是我最重要的事情,我想我应该在这里得到一个默认的响应实例,即:org.apache.catalina.connector.Response,我在JBoss上运行;
  3. 我在 TestAction2 中获得了不同的 ActionContext(与在 TestAction1 中获得的 ActionContext 相比)。

这个问题真的让我发疯了,我花了好几天的时间。
任何建议将被认真考虑!
太感谢了!!

我的代码:

测试动作1:

响应实施:

测试动作2:

web.xml

这是我的调试信息。

  • 在包括之前:动作上下文是:com.opensymphony.xwork2。ActionContext@c639ce
  • 包括之前:响应是:org.apache.catalina.connector.ResponseFacade@8b677f
  • 从响应中获取:<h1>Test!</h1>
  • 包括后:动作上下文是:com.opensymphony.xwork2。ActionContext@2445d7
  • 包括后:响应为:com.bv.test.ResponseImpl@165547d
  • 在 TestAction 2 中:动作上下文是 :com.opensymphony.xwork2。ActionContext@19478c7
  • 在 TestAction 2 中:响应是:com.bv.test.ResponseImpl@165547d

所以,在包含之前和之后我有不同的 ActionContext 实例!!

0 投票
1 回答
366 浏览

java - struts2 和 jaxb 用于高于 2.0.x 的 struts2 版本

是否有像 struts2-jaxb-plugin 这样的插件适用于高于 2.0.x 版本的 struts2 版本?

较新版本的 struts2 在 com.opensymphony.xwork2.ActionContext 类上不再有 get(Object o)。

如果有更好的方法来使用 struts2 完成 xml 结果,请随时为我指明正确的方向。

否则,我正在考虑编写自己的编组拦截器和 jaxb 结果类型,就像 struts2-jaxb-plugin 中发生的那样。

当前版本:

  • 支柱2:2.3.14
  • jaxb api:2.2.9
0 投票
1 回答
4095 浏览

java - 如何在验收测试期间从 Struts 2 获取 ActionContext?

我正在使用 cucumber-jvm 在以 Struts 2 和 Tomcat 作为我的 Servlet 容器的应用程序上编写验收测试(测试行为)。在我的代码中的某个时刻,我需要从 Struts 2 中获取用户,该用户HttpSessionHttpServletRequest.

由于我正在进行测试并且没有运行 Tomcat,因此我没有活动会话并且我得到了一个NullPointerException.

这是我需要调用的代码:

和 getSession 方法:

老实说,我对 Struts 2 了解不多,所以我需要一点帮助。我一直在看这个带有嵌入式 tomcat 示例的 cucumber-jvm,但我很难理解。

我也一直在看这个Struts 2 Junit Tutorial。遗憾的是,它并没有很好地涵盖所有StrutsTestCase功能,而且它是最简单的用例(综合考虑,这是一个非常无用的教程)。

那么,如何像用户使用应用程序一样运行验收测试呢?


更新:

感谢史蒂文贝尼特斯的回答!

我必须做两件事:

  1. 按照建议模拟 HttpServletRequest,
  2. 模拟 HttpSession 以获得我想要的属性。

这是我添加到我的 cucumber-jvm 测试中的代码:

}