问题标签 [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 投票
3 回答
328 浏览

jsp - Struts2 taglib 日期计算删除小数

我正在使用 Struts2 taglib 生成递减年份列表(2016,2015等)。

我正在使用日期标签从 a 中获取年份java.util.Date,但是当我使用减号 ( -) 运算符时year正确但带有小数...

看一看:

有了这个,我得到:

0 投票
1 回答
612 浏览

jsp - 如何将列表作为参数从一个 JSP 传递到 Struts 2 中包含的 JSP?

想象一下,您希望下面的 JSP 代码片段位于多个页面中,其中唯一不同的是传递给它的列表(xxx在示例中)。

我的第一个想法是将它放入myFragment.jsps:include在其他页面中使用以包含它,并将列表作为 传递s:param,例如:

问题是<s:param>似乎只传递字符串,所以上面的代码不起作用。

我也尝试过使用<s:set var="myParam">${param.xxx}</s:set>(并尝试放入myParam迭代器,但没有运气。

问题:

  1. 正确的方法是什么?

  2. 对于这种情况,您想通过将公共代码重构到统一位置来删除 JSP 中的代码重复,是否有更优雅的解决方案?

编辑(示例):

  • 您拥有Page1.jsp和的示例Page2.jsp。两者都使用非常相似s:iterator的 ,唯一的区别是传递给它的变量。目标是将 重构s:iterator到某个地方,以便您只编写一次。

s:iterator自然地,在现实生活中,除了要重构的代码之外,还有更多的代码。

Page1.jsp:

Page2.jsp:

0 投票
1 回答
40 浏览

jsp - 从通过 Tiles 传递的值堆栈中检索字段

我将 Tiles 2.0 与 Struts2 一起使用,我想做的是从值堆栈中填充一个动作 bean,即

会填充类似的东西AS0000123

现在,如果在我的图块定义中我有这样的东西会发生什么:

因此,在模板中我试图:

但我得到的是文本myBean.cod1而不是填充文本。有任何想法吗?

0 投票
2 回答
842 浏览

java - 为什么我的自定义拦截器不起作用?

MyInterceptor.java在 Struts 2 中创建了一个自定义拦截器,它获取参数值usernamepassword来自index.jsp页面并将String这些参数中的转换为大写。

下面是我的拦截器代码,我在其中第 1java.lang.NullPointerException行。14

MyInterceptor.java:

这是我的index.jsp页面:

这需要usernamepassword "ravi"

这是动作类MyAction.java

这是我的struts.xml

Stacktrace如下:

我猜问题在于访问MyInterceptor.java. 的ValueStack方法findString()不返回参数的值namepassword

0 投票
1 回答
666 浏览

jsp - Struts 2 ognl.SecurityMemberAccess 警告

在一个 struts 2 项目中,我在执行这样的循环时收到 ognl 警告:

警告是

这能解决吗?!

0 投票
1 回答
74 浏览

struts2 - ValueStack 容器是线程安全的吗?

动作类是线程安全的,因为 Struts 过滤器为每个请求创建新的动作对象。

所有动作对象以及变量都将存储在ValueStack. 那么,ValueStack容器线程安全吗?

我们能否从不同请求的不同动作对象中获取值?

0 投票
2 回答
1084 浏览

jsp - 在 JSP 中使用 Java8 时间

对于我的开源项目,我正在将日期字段从java.util.DateJava 8切换到java.time.LocalDateTime.

在 JSP 中,我使用 Struts 标记来格式化java.util.Date传入的 bean,但是,这些标记不适用于 Java 8 时间。我使用 Struts 标记不仅检索时间字段,还检索用于解析它的格式化字符串:

"generic.date.toStringFormat"位于消息资源文件中,而 myBean.timeField 来自支持 JSP 的 Action 表单。

看这篇文章:JSTL LocalDateTime format,我似乎可以使用两种替代方法,Sargue 的https://github.com/sargue/java-time-jsptags或自定义 EL 函数,例如前者:

问题是,"myBean.timeField"而且"generic.date.toStringFormat"似乎只能在 Struts 标记中解决。如果<javatime>是标准 HTML 标记,我可以使用它<s:property/>来解析值,例如,

<javatime:.../>它是一个 JSP 标记,我似乎无法在其他 JSP 标记中解析 Struts JSP 标记。问题:如何将 bean 值myBean.timeField和消息资源值提取generic.date.toStringFormat到变量中,以便在<javatime/>上面的标记中引用它们?(如果这可以通过自定义 EL 函数选项来完成,那也对我有用。)

0 投票
1 回答
1111 浏览

java - Using Struts2 s:set variables with getText()

Using Struts2 with JSPs. The following code works fine:

i.e., based on the value of keyValue, message.string1 or message.string2 is looked up from the resource file and properly output to the resulting HTML page.

However, as explained at the bottom of the Struts tag documentation, for i18n in attribute values I can't use the Struts text tag, instead I have to use getText('...'):

Problem is, I can't get %{keyValue} resolved in the above getText() call, whatever syntax I try: getText('%{keyValue}'), getText(%{keyValue}), getText(keyValue), getText('keyValue') it ends up getting evaluated as null. Is this a syntax error on my part or it simply can't be done? If I have to, I know I can go back to using <s:if> and <s:else> with a submit tag under each:

...but I'd like to avoid the duplication if possible.

0 投票
1 回答
217 浏览

java - 为什么我不能更改 Struts2 的 valueStack?

我在拦截器中对 Struts2 的值栈进行了一些操作,代码如下:

拦截前的值堆栈是:

[ http://i.stack.imgur.com/SHqqD.png]

拦截后的valuestack为:

[ http://i.stack.imgur.com/Ths7m.png]

它的接缝值堆栈已更改。但是,真正的返回结果是:

我使用xml配置,代码如下:

返回结果不变。为什么以及如何更改它以获得更改的结果?

0 投票
2 回答
207 浏览

java - ValueStack 中存储了哪些对象

这是我下面的代码,当我执行时它显示大小为 3,但是当我弹出对象时,我只得到 2 个对象。

请解释一下我是否做错了?

Wnd 我想知道存储的对象是什么ValueStack以及如何检索这些对象?