ognl 相关问题

OGNL代表对象图导航语言。它是用于获取和设置Java对象属性的表达式语言。

从 Struts 2.3.37 迁移到 Struts 2.5.33

嗨,我想从 struts 2.3.37 迁移到 struts 2.5.33 。遵循此页面(https://cwiki.apache.org/confluence/display/WW/Struts+2.3+to+2.5+migration)并更新了我的项目。这是我的支柱

回答 1 投票 0

如何在Struts 2中action类的prepare方法中获取URL参数[重复]

我在Preparable接口的prepare方法中得到null作为URL参数名称,而参数是在URL中设置的。 我正在尝试访问的网址, http://localhost:8080/basic-struts/registerInput.action?us...

回答 2 投票 0

使用struts2(6.3.0.2)将OGNL从3.3.4提升到3.4.2时出错

我的应用程序基于struts2(v 6.3.0.2),我目前使用ognl v3.3.4作为其依赖项之一。该应用程序在这些版本上运行良好。 当我尝试将 OGNL 提升到...

回答 1 投票 0

引起:java.lang.IllegalArgumentException:未知的保留键'_typeConverter'

我在尝试登录 Struts 应用程序时收到以下错误。这是在将我的 Struts 库升级到最新版本后发生的。 请分享任何对我有帮助的信息...

回答 2 投票 0

如何在 Struts 2 中访问 OGNL 跟踪评估?

我被告知要优化网络应用程序。为此,我使用 JProfiler。 我注意到很大一部分响应时间都花在表示层上。特别是当代码构建 HTML 代码时。

回答 2 投票 0

Struts2传递变量案例

我正在使用Datatables服务器端ajax分页,需要将一些变量传递到服务器。 我的服务器正在运行 Struts2 操作来处理此数据表请求。 我面临一些问题,因为

回答 3 投票 0

如何在Struts 2中测试bean属性?

我有一堂这样的课: 公共类 Foo { 公共布尔 isValid() { 返回假; } } 在我的 JSP 文件中,我想在测试条件下使用 isValid 方法: 我有一堂这样的课: public class Foo { public boolean isValid() { return false; } } 在我的 JSP 文件中,我想在测试条件下使用 isValid 方法: <s:bean name="com.Foo" var="bar"></s:bean> <s:if test="%{bar.valid == false}"> <p>hello</p> </s:if> 但它不起作用。我做错了什么? 上下文变量由 # 引用,但您使用了不带数字符号的名称 bar。 <s:if test="%{#bar.valid == false}"> <p>hello</p> </s:if> 查看 OGNL 语言指南的变量参考。 OGNL 有一个简单的变量方案,它可以让你存储中间值 结果并再次使用它们,或者只是命名事物来表达 更容易理解。 OGNL 中的所有变量对于整个系统来说都是全局的 表达。您可以在变量前面使用数字符号来引用变量 它的名字,像这样: #var

回答 1 投票 0

Struts 2 动态变量

我正在尝试使用 set 标签在 Struts2 中创建动态变量 编号...

回答 2 投票 0

如何使用 OGNL 调用操作方法

如何使用 OGNL 调用操作方法? helloAction.java 公共字符串 getQuote() { return "别想,只要做"; } 成功.jsp 引用(): 如何使用 OGNL 调用操作方法? helloAction.java public String getQuote() { return "Don't think, just do"; } success.jsp <b>quote() :</b> <s:property value="quote()"/> <br> struts.xml <action name="greet" class="com.struts2.helloAction" > <interceptor-ref name="firewallStack"></interceptor-ref> <result name="SUCCESS">/WEB-INF/resources/success.jsp</result> <result name="input">/WEB-INF/resources/success.jsp</result> </action> 我从 struts 2 OGNL 获得了参考链接 这个quote()方法没有被调用。我正在使用 xwork-2.0.1.jar 和 ognl-2.6.11.jar。 你原来的语法几乎是正确的——只需去掉括号即可。 <s:property value="%{quote}" /> JavaBean 争用比显式方法调用更通用,例如,使用 JSP EL: ${quote} 当函数不带参数时,首选 JavaBean 约定。 这个 quote() 方法没有被调用。我正在使用 xwork-2.0.1.jar 和 ognl-2.6.11.jar。 你的行动中没有这种方法。如果你创建它: public String quote() { 并使用正常的 OGNL 方法调用语法: <s:property value="%{quote()}" /> 然后就会根据需要调用。 有关详细信息和语法,您可以阅读OGNL语言指南。

回答 2 投票 0

如何在 Struts 2 中将布尔 bean 属性与单选按钮绑定

我有一个后端 POJO(比如 MyBean),其中包含一个布尔属性 Boolean isValid。 我正在填充要在 JSP 上显示的 MyBean 列表。 现在我想在每个 MyBean 旁边有一个单选按钮,这样...

回答 1 投票 0

OGNL 数组和列表索引

我正在将此参数发送到我的 struts 操作 cdata[1]=条 在我的行动中,我对索引和值感兴趣。 我按照 OGNL 文档的建议为 CDATA 定义了一个 getter/setter 对:

回答 3 投票 0

从操作类将数据发送到另一个 JSP 文件

主页有创建新记录的链接和显示所有现有记录的链接。 在 create_new_record 页面上,我正在将所有数据写入名为 saveRecords 的操作类方法中的文件...

回答 1 投票 0

使用 <s:if> 标签检查用户是否处于 Struts 2 中的会话中

我想知道是否可以使用 Struts 2 的 标签检查用户是否处于会话中。 如果用户正在会话中,我需要显示“注销”,否则“登录”。 我使用接口...

回答 1 投票 0

如何在Struts 2中从JSP页面调用Java方法

我是 Struts 2 的新手,(从 jsp 切换到 Struts2) 我的 Struts2 应用程序中有 3 个 java 类文件和 4 个 jsp 页面 我必须调用一个java类文件的2种不同方法(let class_01) Fr...

回答 1 投票 0

Struts2 迭代器中的行更新

我正在 Employee.jsp 中通过迭代器显示我的列表,如图所示 员工.jsp: PFNO 员工...

回答 1 投票 0

使用OGNL在JSP文件中调用带参数的java方法

我正在尝试在JSP中根据特定条件显示图像。 &...

回答 1 投票 0

从 Java 类传递 Arraylist 并在 Struts 2 的 JSP 页面中获取它

我正在尝试获取从java类传递的JSP页面中的ArrayList。但最终我没有成功。 这是我所做的: 这是我的 POJO 类: 公共类坐标{ 私人双拉丁...

回答 1 投票 0

Struts 2 标签的评估似乎不一致

我遇到了一些与 OGNL 混合的 Struts2 标签的问题。为了克服不能在 OGNL 中嵌套表达式求值的事实,例如 %{foo[%{bar}]},我使用对变量 t 的连续赋值...

回答 2 投票 0

i18n 在下拉菜单上使用 s:select 标签[重复]

我的 JSP 页面中有一个下拉菜单,它是用 标签实现的,如下所示 我的 JSP 页面中有一个下拉菜单,它是使用 <s:select> 标签实现的,如下所示 <s:select name="priorToApplyingInfo.userProfile.phoneNumbers[0].type" listKey="key" listValue="value" list="phoneTypes" headerKey="0" headerValue=""/> 现在下拉菜单中的值来自列表 phonetypes,该列表在 HashMap 文件中作为 .java 实现。 phoneTypes = new LinkedHashMap<Integer, String>(); phoneTypes.put(new Integer(1), getText("HOME")); // Phone ContactBook category for the business phone phoneTypes.put(new Integer(DAOHelperFactory.OWNER_PROFILE_PHONE_CATEGORY), getText("WORK")); phoneTypes.put(new Integer(3), getText("MOBILE")); phoneTypes.put(new Integer(DAOHelperFactory.OWNER_PROFILE_FAX_CATEGORY), getText("FAX")); phoneTypes.put(new Integer(5), getText("OTHER")); preferredContact = new ArrayList<String>(); preferredContact.add(getText("HOME")); preferredContact.add(getText("WORK")); preferredContact.add(getText("MOBILE")); preferredContact.add(getText("FAX")); preferredContact.add(getText("EMAIL")); preferredContact.add(getText("OTHER")); bestContactTime = new ArrayList<String>(); bestContactTime.add(getText("AFTERNOON")); bestContactTime.add(getText("EVENING")); bestContactTime.add(getText("MORNING")); 诸如 home=home、work=work 等键位于 .properties 文件中 我正在努力国际化此页面,但我无法找到获取翻译的方法 下拉菜单中的值。 要更改 Struts2 应用程序中的区域设置,您需要将 requst_locale 参数包含到某些链接或表单中。 <s:url var="urlen" includeParams="all" value=""> <s:param name="request_locale">en</s:param> </s:url> <s:a href="%{#urlen}">English</s:a> 如果您想从操作类更改区域设置,请使用 ActionContext 进行设置并将其放入 HTTP 会话中。 ActionContext.getContext().setLocale(locale); session.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale); 您也可以在 JSP 中的 getText 标签的 listValue 属性中调用 <s:select> 方法。 <s:select name="priorToApplyingInfo.userProfile.phoneNumbers[0].type" list="phoneTypes" headerKey="0" headerValue="" listKey="key" listValue="%{getText(value)}"/> 对我来说工作(就像 Aleksandr M 在上一段中写的那样): <s:select listValue="%{getText(value)}" listKey="key" list="phoneTypes></s:select> 只有我创造 phoneTypes = new HashMap<String, String>() phoneTypes.put("HOME", "HOME") phoneTypes.put("WORK", "WORK") etc.. 在这种情况下,键被省略(您可以在此处编写任何内容)并在页面上显示(翻译)值。 此解决方案不适用于列表,仅适用于地图。 在从资源中检索消息之前,您没有切换 Struts2 中的区域设置。 getText() 是本地化方法,如果它使用默认文本提供程序作为默认行为,那么它会搜索区域设置特定的键。您可以从操作上下文或直接从 ActionSupport 操作获取 Struts2 使用的当前语言环境(还没有看到您有一个操作并且它扩展了它)。 通常切换区域设置是通过 i18n 拦截器完成的,您可以在其中将参数放入请求中 request_locale。但是您可以通过更改操作上下文中的区域设置来切换它(确保您正在运行与当前相同的线程)。 ActionContext.getContext().setLocale(new Locale("es")); 您应该在执行任何 getText() 之前运行此代码以获取本地化消息。

回答 3 投票 0

如何在Struts 2中动态设置静态参数的值

我想知道,是否可以动态地将值设置为静态参数 动态价值在这里 我想知道,是否可以动态地将值设置为静态参数 <action name="TestApp_*" class="test.TestApp" method="{1}"> <param name="app_Id">Dynamic value here</param> <result name="input">WEB-INF/jsp/test/testView.jsp</result> </action> 我试过了 <action name="TestApp_*" class="test.TestApp" method="{1}"> <param name="app_Id">${app_Id}</param> <result name="input">WEB-INF/jsp/test/testView.jsp</result> </action> 不工作。它将 ${app_Id} 显示为常规文本。 请注意,它显示 ${app_Id} 作为常规文本到底是什么意思。Struts2 提供了这种灵活性,您可以动态设置 param 值。 您只需在操作类中设置这些值,即可将它们用作占位符。 public class MyAction extends ActionSupport { private int app_Id; public String execute() { // you execute logic this.app_Id= 123; return SUCCESS; } // getter and setter for app_Id } 您可以在结果配置中使用此app_Id <action name="TestApp_*" class="test.TestApp" method="{1}"> <param name="app_Id">${app_Id}</param> <result name="input">WEB-INF/jsp/test/testView.jsp</result> </action> 您可以获得更多详细信息配置结果中的参数 您可能已经(错误地)手动编写了 getter,而不是让 IDE 为您完成。 变量app_Id;必须有一个吸气剂getApp_Id(),而你可以有类似getapp_Id()或get_app_Id()之类的东西......但是如果你不发布你的操作代码,我们怎么知道它?! 此外,考虑更改变量(从现在开始)以尊重约定,即希望它们采用驼峰式命名,而不是下划线分隔...然后 appId 表示变量,getAppId() 表示 getter。 尝试这样做.. <result type="redirect"> <param name="location">WEB-INF/jsp/test/testView.jsp</param> <param name="inputName">app_Id</param> </result> 在jsp页面中你可以直接使用这个值就像 <s:properties value="app_Id"> 试试这个。 看看staticParams拦截器。 此拦截器使用操作配置中定义的静态参数填充操作。如果操作实现了Parameterizable,静态参数的映射也将直接传递给操作。静态参数将添加到请求参数映射中,除非 merge 设置为 false。 参数通常使用 <param> 中的 struts.xml 元素定义。 它展示了如何将此拦截器配置到您的操作配置中。 例如: <action name="someAction" class="com.examples.SomeAction"> <interceptor-ref name="defaultStack"> <param name="staticParams.parse">true</param> <param name="staticParams.overwrite">false</param> </interceptor-ref> <param name="num">${numValue}</param> <result name="success">good_result.ftl</result> </action> 这使得拦截器能够从操作配置中解析 OGNL 表达式的参数值。

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.