问题标签 [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.
java - 在 Struts 2 中使用 OGNL 检查“top”值的成员资格
我正在使用带有 JSP 模板和 Struts 2 标签的 Struts 2。有了这些,我似乎无法检查HashMap
.
地图设置正确,有一个List<Taxon>
我正在迭代,我想检查该元素是否存在于我拥有的地图中,称为synonyms
类型为Map<Taxon, Taxon>
.
当我与in
运营商核对时,我总是会出错,即:
另一方面,这总是正确的:
如果我执行以下操作,如果元素在地图中,我会得到正确的值,如果不是,则会得到某种空值:
奇怪的是,如果taxon
是我正在迭代的任何东西的属性(即我将它包装在另一个类中),然后检查它是否element != null
真的工作正常。这是 OGNL 中的错误还是我做错了什么?
java - 如何使用 Struts2 中的 Bean 将对象从动作类传递给 JSP?
我必须将 Bean 类的对象从我的操作类发送回 JSP。我在我的动作类中实例化 Bean 类,并在我的动作类中设置一些值。
在我的 JSP 中,我也声明了 bean 类。
在 bean 类中,我用公共 getter 和 setter 声明了变量 private。但是 JSP 中的值是 null。调试后发现action类没有问题。但是当命令进入 bean 类时,值变为null
.
java - 拦截器无法访问操作参数
我正在为 struts2 拦截器创建一个示例。我创建了一个简单的登录页面并使用自定义拦截器类来加密输入。但是拦截器正在从ValueStack
as读取输入值null
。
我不明白我在做什么错。我想struts.xml
拦截器类是足够的数据。如果您需要更多我的代码,请告诉。
struts.xml
拦截器 .java 文件
EncryptorDecryptor
是我定义的一个单独的类,它自己可以正常工作。
java - 有没有办法将 OGNL 与 Struts2 UI 标签绑定
我正在使用 Struts2 开发一个 webapp。我曾经使用 Struts1
有没有办法将会话对象直接引用到 JSP,这样如果我更改公式中的值,引用的会话对象中的值也会更新。
例如,我有一个会话对象顺序,它具有 getter 和 setter 的属性数量。
看起来,在我将一些值放入textfield
然后提交页面之后,会话中的值没有得到更新。
目前我正在使用另一种方法,该方法涉及session.put()
动作属性的设置器。我个人不喜欢我目前的解决方案。
struts2 - Struts 2 中的自定义 OgnlValueStack
我想通过扩展OgnlValueStack
Struts 2.3.x 的类在我的应用程序中实现自定义 ValueStack。
请让我知道如何做到这一点。我需要在我的应用程序中扩展和实现哪些类以及如何使用 @Inject 注释注入不同的依赖项?
更新
我已经按照前面的建议进行了更改。我的ValueStackFactory
实现是:
该类InsightValueStackImpl
是我自定义的 ValueStack,它扩展了OgnlValueStack
.
按照前面的建议进行更改后,当我启动应用程序时,出现以下错误:
这是因为空 XWorkConverter 实例。
请让我知道为什么它没有被注入。
提前致谢
谢谢
我已经按照前面的建议进行了更改。我的ValueStackFactory
实现是:
该类InsightValueStackImpl
是我自定义的 ValueStack,它扩展了OgnlValueStack
.
按照前面的建议进行更改后,当我启动应用程序时,出现以下错误:
java.lang.IllegalArgumentException:在 com.opensymphony.xwork2.ognl.OgnlValueStack.setRoot(OgnlValueStack.java:88) 处的 com.opensymphony.xwork2.ognl.OgnlTypeConverterWrapper.(OgnlTypeConverterWrapper.java:32) 处的包装类型转换器不能为空com.opensymphony.xwork2.ognl.OgnlValueStack.(OgnlValueStack.java:71) 在 jp.co.spectrum.insight.core.datamodel.InsightValueStackImpl.(InsightValueStackImpl.java:86) 在 jp.co.spectrum.insight.core。 mvc.factory.InsightValueStackFactory.createValueStack(InsightValueStackFactory.java:85) 在 jp.co.spectrum.insight.core.mvc.dispatcher.InsightFilterDispatcher.(InsightFilterDispatcher.java:118) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)。DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在 java.lang.Class.newInstance0(Class.java:355) 在 java.lang.Class.newInstance (Class.java:308) 在 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) 在 org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) 在 org.apache。 catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:115) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726 ) 在 org.apache.catalina.core.StandardHost 的 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)。在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 开始(StandardHost.java:840) .catalina.core.StandardService.start(StandardService.java:525) 在 org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 在 org.apache.catalina.startup.Catalina.start(Catalina.java :595) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang 的 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)。 reflect.Method.invoke(Method.java:597) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)java:840) 在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core .StandardService.start(StandardService.java:525) 在 org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:595) 在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method。在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 的 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 调用(Method.java:597)java:840) 在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core .StandardService.start(StandardService.java:525) 在 org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:595) 在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method。在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 的 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 调用(Method.java:597)catalina.core.ContainerBase.start(ContainerBase.java:1057) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core.StandardService.start(StandardService.java: 525) 在 org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:595) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)catalina.core.ContainerBase.start(ContainerBase.java:1057) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core.StandardService.start(StandardService.java: 525) 在 org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:595) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)1057) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core.StandardService.start(StandardService.java:525) 在 org.apache.catalina.core.StandardServer .start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl .java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.catalina.startup.Bootstrap.start( Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)1057) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core.StandardService.start(StandardService.java:525) 在 org.apache.catalina.core.StandardServer .start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl .java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.catalina.startup.Bootstrap.start( Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method .invoke(Method.java:597) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method .invoke(Method.java:597) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method. java:597) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method. java:597) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
这是因为空 XWorkConverter 实例。
请让我知道为什么它没有被注入。
提前致谢
list - 使用另一个列表值的键动态获取一个列表值
亲爱的朋友们,我有一个带有一个列表的迭代器。我在前一个迭代器中有另一个迭代器。我想通过第二个列表值的键显示第一个列表值。如何实现。请帮我。
我用设置标签试过这个
但这仅给出了“关键”。但我想要那个钥匙的价值..在此先感谢...
java - 即使没有 value 属性,Struts 2 textfield 也会显示值
我有一个 Struts 2textfield
标签,我只需要让用户输入值并发送到操作。
即使此页面加载用户对象包含第一个答案的值,我也不想在文本字段中显示它,而是希望文本字段为空白。
但是在没有指定 value 属性的情况下,用户对象中的值仍然显示在此字段中。
jsp - 如何使用 OGNL 从 Struts 2 中检索数据
我需要向用户展示注册用户,这里使用的是 Struts2,我很新。但我知道如何在不使用 Struts 2 的情况下检索元素,我将使用集合设置集合内的所有元素,并将其放入请求范围并转发到 JSP 页面,我将使用 JSTL 标记检索所有元素,但我不知道如何在 Struts 2 中做到这一点。
这是我的 JSP 代码,我将在其中检索单个元素,但它不起作用
java - 如何将 JSP 变量转换为 Struts2 变量?
如何将 JSP 变量转换为 Struts2 变量?
我尝试了以下方法:
最常见的错误是
原因:标签'push',字段'value':您必须指定一个值才能推送到堆栈上。示例:人 - [未知位置]
java - Struts2 以不同的方式传递数据
我得到了使用 Struts2 框架的 JSP 页面的以下代码
在导致此 JSP 页面的操作类中,有以下方法(以及其他方法):getCrudMode()
、getItem()
和 item 有一个名为 的方法getId()
。
我了解 struts2 将如何使用这些方法来填写<s:hidden>
标签。但是,我遇到了以下行的问题:
首先,我认为这与其他两个工作相同,Struts2 将运行getVersion()
动作类的方法。但是,没有调用字段,也version
没有方法getVersion()
。JSP中也没有<s:set name="version">
变量标记。这段代码的意义何在?%{}
真的有必要吗?
这可能是需要删除的遗留代码,但我不确定前两个crudmode
和item.id
和后者之间有什么区别%{version}
。