Tag: ognl

当struts.ognl.allowStaticMethodAccess为false时,Struts 2调用静态方法

出于安全性问题,struts 2将struts.ognl.allowStaticMethodAccess设置为false 。 静态方法调用在某些情况下可能很有用,例如在validation器扩展中使用StringUtils处理表达式基本validation器Struts 2时 。 解决此问题的一种方法是在操作中定义辅助方法,例如,如果我们要使用Math类,我们应该在下面添加: public double randomMath(){ return Math.random(); } public double asinMath(double a){ return Math.asin(a); } …. 并将其用作${randomMath}或${asinMath(1)} 正如您在Math类中看到的每个方法一样,我们需要在操作中定义一个具有相同签名的public方法。 有没有更好的方法来避免这些样板吸气剂?!

struts 2动作没有setter getter

我想为来自用户界面的数据创建一个没有setter和getter属性的动作类。 相反,我想在我自己的构建器类中使用ServletActionContext.getRequest().getParameterMap()来构造对象。 我创建了没有属性的Action类。 当我提交我的表单时,我ognl.OgnlException: target is null for setProperty(null, “field-name”, [Ljava.lang.String;@5513fab7) 是否需要任何其他约定或配置来传达Struts2框架以不设置属性并停止避免上面收到的exception?

Struts2 – JSP EL – 连接似乎不起作用

试图找出这个问题很长一段时间…… 我正在使用Object中的值设置变量。 并尝试以下列方式打印它们。这些都不起作用。 “${bodyText}” “” “${#bodyText}” “%{bodyText}” “%{#bodyText}” 不确定问题是什么 我也尝试了以下内容: 但它没有用。

字符串使用struts2拆分

我喜欢使用struts2在我的view.jsp页面中拆分字符串。 请帮我解决这个问题。 我想在languagesKnown中使用逗号分割字符串值,我从Database获取值。 例如languagesKnown包含像”tamil,English,Malayalam”这样的字符串。 所以我喜欢使用struts2拆分字符串 Languages Known: <!–Free–> Tamil Hindi

Struts2重定向到具有未知数量参数的另一个动作

我有一个登录操作,在成功执行后重定向到上一页(我将上一页存储在我的会话中,以便稍后可以获取)。 在Struts2中,我可以找到两种方法来执行此重定向: ${previousAction.requestURL} 在这个例子中,将调用getPreviousAction()。getRequestURL()方法(这是一个自制方法,它不是struts2),这将按预期返回上一页的url,例如: somenamespace/index.action 还有另一种重定向: ${previousAction.name} /${previousAction.namespace} 我想使用这个redirectaction结果类型,因为它更干净。 但是,当查询参数是url的一部分时,我遇到了问题。 例如: somenamespace/index.action?name=john&age=50 我知道我可以在我的struts.xml中添加这些硬编码的params,但问题是我的登录操作应该重定向到以前调用的任何操作,而且我事先不知道先前操作有哪些查询参数。 这与您正确知道要重定向到哪个操作的典型用例不同 我发现一个非常糟糕的解决方案是添加每个param(在struts.xml中我所有动作的所有参数的集合),然后使用选项: true

在Jsp Struts2中调用Action类的函数

我有一个小场景。 我有两个POJO类和两个表User和Domain (表的名称相同)。 每个用户都属于一个且只有一个域。 我有两个Action类,一个是UsersManagemntAction ,另一个是DomainsManagementAaction 。 我使用UsersManagemntAction来执行与用户相关的CRUD操作。 在我的User类中,我有一个属性domainId 。 此属性将包含用户所属的Domain的id 。 我的问题是,当我在jsp页面中显示用户信息时,我向用户信息显示domainId 。 这是因为用户对象将具有domainId 。 而不是显示domainId我想显示域名。 我无法执行连接查询。 我应该解决这个问题,当我显示用户的信息时,我在用户管理动作类中调用一个函数将domainId传递给该函数。 该函数在Domain表上执行搜索并返回域名。 此解决方案无法正常工作,因为我没有找到任何方法将domainId传递给该函数。 我可以调用UsersManagemntAction类的函数但无法传递domainId 。 请帮助我或建议我一个替代解决方案。 下面是JSP页面和User类的代码。 JSP: 0″> User.java: public class User { private Long userId; private String loginId; private String password; private String email; private Long domainId; public String getPassword() { return password; } public […]

使用Action数据模型值在Struts2 JSP中调用静态方法helper类

我是Struts2的新手。 我正在将Struts2与Action中的典型数据模型UserItem使用。 使用Struts标记时,数据模型看起来不太好。 我想要做的是编写一个静态的util方法Helper.printNice(Foo) ,它接受参数Foo并在用户友好的显示中打印出Foo中包含的值。 如何将Struts属性标记与静态方法一起使用? 像这样的东西com.helper.Helper.printNice() 。 原因是我的网络应用程序正在读取供应商填充的数据,在许多列中看起来像这个[“string1”,“string2”,…]。 显然,我不希望以这种格式显示给最终用户。 帮助器方法会使它看起来像string1 string2 等…

将struts2从2.3.16更新到2.3.32(修复S2-045)后,JSP文件无法解析某些对象的字段

最近我们修复了struts2的‘S2-045’问题。我更新了所有与struts2相关的jar文件,包括freemarker , ognl , xWork等。 我使用tomcat8来部署我的动态Web项目。 启动tomcat-server时没有任何Exceptions 。 但是似乎出现了一些问题 :一些值(从db获得)应该显示在jsp页面上, 不再显示 。 没有抛出exception。 我也可以看到我已经在Action Classes正确地获得了这些对象。 以下是一些例子 // index.jsp —– here is the list I want to show on the page. // the list is the type of List (Class News is my bussiness Class). // I want to get the ‘fTitle’ and ‘fCreatetime_s’ from ‘News’ […]

Struts 2 – %{}表示法的用法

Struts 2中%{}表示法的确切用法是什么? 有人可以用一个简单的例子来解释,当使用%{}时代码可以工作,而不使用时它不起作用吗?

Struts2以单一forms处理多个动作

我有一个表单包含三个按钮print / export / save 。 我怎样才能在struts.xml映射它?