问题标签 [valuestack]

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 投票
5 回答
34668 浏览

java - struts2 - 理解值栈

我有一个关于 struts2 值堆栈的问题。假设我有一个名为 Action 的类RegisterAction,它有一个执行方法,如下所示:

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

因此,在该类中执行 execute 方法后,控制将流向 success.jsp。

我的问题是:

1)我如何获得我在堆栈中推入的值success.jsp

2)假设success.jsp我有一个<s:submit method="testMethod" />重定向到一个名为的动作类TestAction。也就是说,从注册页面,用户点击提交,在我们的execute方法中,RegisterAction我们将“测试字符串”压入栈中。然后我们去success.jsp。有success.jsp一个提交按钮,指示我们到TestAction#testMethod. 在TestAction#testMethod中,我压入堆栈的值RegisterAction#execute还在吗?我怎么才能得到它?我单步执行了 Eclipse 调试器,但看不到值。

谢谢。

0 投票
1 回答
2182 浏览

struts2 - Struts 2 - 访问 ValueStack 上共享相同名称的不同属性

Struts 2 将在视图渲染期间首先针对 ValueStack 中的顶部对象解析所有属性名称。但是,如何访问堆栈中较低对象的同名属性呢?

例子:

假设我有一个名为 MyAction 的 Action 类,它有一个 logDate 属性。在调用此操作后呈现的视图中,有这样的:

现在想象一个 User 对象也有一个 logDate 属性。在迭代期间,Struts 2 将始终将当前用户对象推到 ValueStack 的顶部,从而有效地解析所有属性名称。但是,如果我想从操作中访问 logDate 怎么办?这样做的正确方法是什么?

0 投票
1 回答
8932 浏览

java - Struts 2 单选按钮列表

我正在处理 Struts 2 单选按钮。我想从我的操作类中检索列表,但它给出了以下错误

org.apache.jasper.JasperException:标签'radio',字段'list',名称'user.yourGender':请求的列表键'#user.gender'无法解析为集合/数组/映射/枚举/迭代器类型。示例:人或人。{name} - [未知位置]

我的动作类和用户类如下

HelloAction

用户类

helloForm.jsp

你好.jsp

0 投票
1 回答
3175 浏览

struts2 - 跨应用程序的 ValueStack 生命周期是否在 struts2 中?

我可以通过ValueStack多种方式设置属性。

我需要能够在 JSP、freemarker 和 java 中取回所有这些值

我想了解这 4 种设置方法中的每一种的生命周期。是否跨应用程序。是否为每个请求创建了ValueStack,并为每个请求在其中设置了应用程序和会话值?

我知道第 4 种方法是最常用的方法,但我可能不会在所有不容易访问操作类的地方都使用它。

我对在 JSP 中访问还有另一个疑问

我也想知道第 5 点在stack.getContex().put()和中是如何工作的stack.set()?我知道在第 6层,我正在访问的resultDTO是一个不同的根目录,而在第 7 层,它是默认根目录的子节点,即 ValueStack。在 8th 它开始从默认根搜索。

我浏览了http://struts.apache.org/2.0.11.1/docs/ognl.htmlhttp://struts.apache.org/2.1.2/struts2-core/apidocs/com/opensymphony/xwork2/util /ValueStack.html并且相当混淆这个链接http://www.opensymphony.com/ognl/html/DeveloperGuide/introduction.html#embeddingOGNL

说了所有这些后,我不太倾向于使用stack.getContext().put()方法,因为通过将 url 设置为?debug=browser可以清楚地看到其中的值。如果我出错了,请告诉我。

0 投票
2 回答
4324 浏览

struts2 - Struts2 中的 ValueStack 是如何工作的?

考虑以下代码。

现在,当我们尝试在 JSP 中访问它时,上面的哪些属性将在值堆栈中?它是否像普通堆栈一样工作,即继续推送它读取的任何属性?

0 投票
2 回答
3062 浏览

java - Struts2 在我的 AJAX 调用中返回空 JSON

我正在努力从我的 Struts2 Action 类中获取 JSON 响应,我想我遗漏了一些东西。我在我的项目中有以下设置。

在我的模块级操作定义中,配置如下:

在我的 Struts.xml 我有

在我的行动课上:

JSON请求http://localhost:8080/customer/getCustomer返回我空数组{}在萤火虫中......我能看到。

我也在尝试将输出作为 JQuery 中的数据表输入。因此没有行。

非常感谢任何人的帮助。

0 投票
1 回答
514 浏览

struts2 - 关于 struts 2 中的值堆栈的一些基本查询?

我是 strut 2 的新手,虽然我在 struts 1.2 上工作过。在现有的项目 jsp 文件之一中,我有以下代码:

请求来了CustomerRelationAction.java,它有方法getCustomerRelations()getRelationId()

以下是问题:-

  1. 我把断点放在方法里面getCustomerRelations()。我看到这个方法里面有四次流量。在第 3 行两次,在第 4 行再两次。根据我的理解,流程应该只出现 1 次,即在第 3 行。一旦在第 3 行完成 getCustomerRelations ,不应将其值放入值堆栈中,以便它可以参考下次它被引用(就像它在第 14 行再次被引用)?

  2. getCustomerRelations()方法返回CustomerRelationData对象列表,其中CustomerRelationData类也包含该方法getRelationId()。现在在第 5 行,我们在第 5 行引用 value="relationId。在哪个对象(CustomerRelationAction.java 或 CustomerRelationData)上,将调用 getRelationId() 方法?即使我是不确定列表对象 CustomerRelationData 是否会出现在值堆栈中?如果是,它将被放入值堆栈的哪一行?

  3. 现在迭代器在第 6 行完成。之后,现在我<s:property value="relationId" />再次参考代码,在哪个对象(CustomerRelationAction.java 或 CustomerRelationData)上,将调用 getRelationId() 方法?

0 投票
2 回答
1058 浏览

java - 数据如何在 Struts2 中传输?

我试图了解 Struts2 中的路径数据,数据是如何放置在 ValueStack 上的?如何找出 ValueStack 中当前存在的对象?我可以从不同范围的应用程序、会话、请求、页面访问哪些其他数据?如何确定我的变量应该具有的范围?

0 投票
4 回答
4448 浏览

java - 如何在 Struts 迭代器中访问 ValueStack 对象?

我有以下代码:

评论是评论对象的列表,其中包含评论的详细信息,例如评分和用户名。

我的问题是我无法访问循环内 ValueStack 上存在的任何对象。

循环外<s:property value="#request.restaurant.portalImage.url" />正常工作。但在循环内它打印空。

AFAIK 迭代器将其集合推送到 ValueStack 上,以便所有 OGNL 表达式都针对它进行解析。但是我使用了 # 这意味着我明确指定了要解析的根对象。

为什么它仍然不起作用?

0 投票
1 回答
563 浏览

struts2 - 2 个不同的 struts 应用程序的相同 ValueStack

我在 jboss AS (5.1.0-GA) 中运行我的 sruts 2 (2.1.8.1) 应用程序。我将 a.war 和 b.war 放在同一个 /server/default/deploy 路径中,并将 struts 2 库放在 /server/default/lib 路径中。

应用程序或服务器中没有错误消息,但是当我出于某种原因输入http://localhost:8080/b/时,我进入了 b.jsp 页面,应用程序的消息资源中的消息。

所以,我的问题是:将 struts jar 放在服务器的 /lib 中只会创建所有应用程序必须使用相同的值堆栈的一个实例?如果是这样,我该怎么做才能为每个应用程序提供不同的实例,但将罐子保留在服务器路径中?

我应该把支柱罐子带回战争吗?

谢谢

我使用struts标签来获取系统标题

这是我对 a.war 的配置:

/WEB-INF/classes/a-message-resources.properties

在 struts.xml 我有

这是 b.war 的配置

/WEB-INF/classes/b-message-resources.properties

在 struts.xml 我有