问题标签 [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.
jsp - Struts2 taglib 日期计算删除小数
我正在使用 Struts2 taglib 生成递减年份列表(2016
,2015
等)。
我正在使用日期标签从 a 中获取年份java.util.Date
,但是当我使用减号 ( -
) 运算符时year
正确但带有小数...
看一看:
有了这个,我得到:
jsp - 如何将列表作为参数从一个 JSP 传递到 Struts 2 中包含的 JSP?
想象一下,您希望下面的 JSP 代码片段位于多个页面中,其中唯一不同的是传递给它的列表(xxx
在示例中)。
我的第一个想法是将它放入myFragment.jsp
并s:include
在其他页面中使用以包含它,并将列表作为 传递s:param
,例如:
问题是<s:param>
似乎只传递字符串,所以上面的代码不起作用。
我也尝试过使用<s:set var="myParam">${param.xxx}</s:set>
(并尝试放入myParam
迭代器,但没有运气。
问题:
正确的方法是什么?
对于这种情况,您想通过将公共代码重构到统一位置来删除 JSP 中的代码重复,是否有更优雅的解决方案?
编辑(示例):
- 您拥有
Page1.jsp
和的示例Page2.jsp
。两者都使用非常相似s:iterator
的 ,唯一的区别是传递给它的变量。目标是将 重构s:iterator
到某个地方,以便您只编写一次。
s:iterator
自然地,在现实生活中,除了要重构的代码之外,还有更多的代码。
Page1.jsp:
Page2.jsp:
jsp - 从通过 Tiles 传递的值堆栈中检索字段
我将 Tiles 2.0 与 Struts2 一起使用,我想做的是从值堆栈中填充一个动作 bean,即
会填充类似的东西AS0000123
现在,如果在我的图块定义中我有这样的东西会发生什么:
因此,在模板中我试图:
但我得到的是文本myBean.cod1
而不是填充文本。有任何想法吗?
java - 为什么我的自定义拦截器不起作用?
我MyInterceptor.java
在 Struts 2 中创建了一个自定义拦截器,它获取参数值username
和password
来自index.jsp
页面并将String
这些参数中的转换为大写。
下面是我的拦截器代码,我在其中第 1java.lang.NullPointerException
行。14
MyInterceptor.java:
这是我的index.jsp
页面:
这需要username
和password
"ravi"
:
这是动作类MyAction.java
:
这是我的struts.xml
:
Stacktrace如下:
我猜问题在于访问MyInterceptor.java
. 的ValueStack
方法findString()
不返回参数的值name
和password
。
jsp - Struts 2 ognl.SecurityMemberAccess 警告
在一个 struts 2 项目中,我在执行这样的循环时收到 ognl 警告:
警告是
这能解决吗?!
struts2 - ValueStack 容器是线程安全的吗?
动作类是线程安全的,因为 Struts 过滤器为每个请求创建新的动作对象。
所有动作对象以及变量都将存储在ValueStack
. 那么,ValueStack
容器线程安全吗?
我们能否从不同请求的不同动作对象中获取值?
jsp - 在 JSP 中使用 Java8 时间
对于我的开源项目,我正在将日期字段从java.util.Date
Java 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 函数选项来完成,那也对我有用。)
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.
java - 为什么我不能更改 Struts2 的 valueStack?
我在拦截器中对 Struts2 的值栈进行了一些操作,代码如下:
拦截前的值堆栈是:
[ http://i.stack.imgur.com/SHqqD.png]
拦截后的valuestack为:
[ http://i.stack.imgur.com/Ths7m.png]
它的接缝值堆栈已更改。但是,真正的返回结果是:
我使用xml配置,代码如下:
返回结果不变。为什么以及如何更改它以获得更改的结果?
java - ValueStack 中存储了哪些对象
这是我下面的代码,当我执行时它显示大小为 3,但是当我弹出对象时,我只得到 2 个对象。
请解释一下我是否做错了?
Wnd 我想知道存储的对象是什么ValueStack
以及如何检索这些对象?