我想使用struts2标记测试非null值。 这有效,如果我使用以下内容: ..stuff.. 如果我错过了非空零件,它似乎也有效,并且只做: ..stuff.. 但是,当myField是String ,它不再起作用。 我更喜欢第二种forms,因为它更简洁,似乎不像在我的表示层中放置代码。 但我不想使用它,如果它是一个无意识的function,它在某种程度上是偶然的工作 ,正如它不适用于字符串的事实所表明的那样。 所以我的问题是,在上述测试中是否可以错过”!= null” ?
我有一个包含List的Map ,如下所示。 Map<String,List> dynamicList = new HashMap <String,List>(); 在上面的Map我有像dynamiclist1 , dynamiclist5 , dynamiclist6等的键。 我必须根据另一个迭代器索引显示这个dynamicList ,如下所示: 我想要这样的#dynamicList.dynamiclist%{#stat.index}来获取该列表。
我在Struts 2 modelbean中声明了一个布尔变量isBooleanValue,我可以通过在jsp中使用这个modelbean.aBooleanValue来查看该值。 getter看起来像这样 public boolean isABooleanValue(){ return isABooleanValue; } setter看起来像这样 public void setABooleanValue(boolean isABooleanValue){ this.isABooleanValue=isABooleanValue; } Jsp代码 任何人都可以解释如何从值栈中访问不正确的变量名称。 编辑 解 在JSP中使用属性基于指定的Getter方法。 modelbean.aBooleanValue调用模型Bean中定义的isABooleanValue()方法,因此不依赖于私有字段名称。 类似的问题 更新: – 虽然这似乎适用于旧版本的OGNL,但与Struts2捆绑在一起的OGNL 3.0.11版(OgnlRuntime)可能会导致当getter和setter字段名称不相同时显示空白值。
如何使用OGNL调用操作方法? helloAction.java public String getQuote() { return “Don’t think, just do”; } success.jsp quote() : struts.xml /WEB-INF/resources/success.jsp /WEB-INF/resources/success.jsp 我从struts 2 OGNL获得了ref链接 不调用此quote()方法。 我正在使用xwork-2.0.1.jar和ognl-2.6.11.jar。
public class MyAction extends ActionSupport { public String getMyValue() { return “SomeText”; } … } 我有这个MyAction类。 现在,问题是当我使用OGNL在我的JSP页面中引用myValue时,它会在ValueStack上创建myValue属性,还是只调用getter方法?
我们使用Struts 2validation器@FieldExpressionValidator和@ExpressionValidator 。 这些validation器检查OGNL表达式。 在很多情况下,我们在这些表达式中处理字符串。 expression=”(captcha==” && captcha== null || ….) 我们发现如果我们可以在这里使用StringUtils(isEmpty,trimToEmpty,…)非常有用。 当我们将struts.ognl.allowStaticMethodAccess设置为false时,出于安全问题,我们尝试通过将此getter添加到action来解决它 public StringUtils getStringUtils(){ return new StringUtils(); } 然后在表达式中使用stringUtils.isEmpty(captcha) 。 但它没有用。 调试我们测试 ActionContext.getContext().getValueStack().findValue(“stringUtils”); //returns org.apache.commons.lang3.StringUtils@693ade51 which shows there is an object in the stack ActionContext.getContext().getValueStack().findValue(“stringUtils.isEmpty(‘dd’)”); //returns null 任何意见 ?!
我正在使用struts 2框架并试图查看在数据库中检查用户ID存在的最佳方法。 在我的上一个项目中,我用jquery ajax做了这个,但对它不满意。 在这个项目中,我使用validation框架对客户端的输入字段和jquery validate插件进行服务器端检查。 我有一个DAO类,它调用DB来检查是否存在,我不想使用jquery ajax但是更喜欢使用struts 2validation框架。 他们是否可以使用我的DAO类输出并使用字段表达式或使用validate方法将其与我的validationxml结合使用? 如果我使用validation方法? 与执行动作类相比,此方法的执行顺序是什么? 我想要这种格式的订单,首先我做客户端validation,然后是服务器端validation,然后只有服务器端完成,我需要启动检查用户ID是否存在然后最后插入数据库? 我的字段操作validation文件如下所示, Email is required Please enter valid email id 现在我需要检查db中是否存在电子邮件,因此我有DAO类返回true或false,如何从dao类添加validation?
我想要显示的项目列表以及每个都有一个空白文本字段来填充我的JSP页面上的金额,一旦我填写了所需的项目金额,我将提交。 我有如下的ExampleAction类,其中我有populate()方法,我首先触发,以便填充项目。 我点火了: http://localhost:8084/WebExample/populate.action. 相同的ExampleAction执行mtd,我从JSP页面调用SUBMIT按钮操作。 但我的问题是在执行方法,我无法获取列表中的对象,即exList。 这是因为动作类的实例只与一个请求相关联吗? 当我通过SUBMIT按钮触发另一个动作时,有不同的值堆栈关联? 如果是,那么我应该以最好的方式检索输入的那些金额(在JSP中),在execute()方法中在Tomcat的控制台中打印? ExampleAction: private ArrayList exList; private EX ex; public ExampleAction(){ exList = new ArrayList(); } //Getters And Setters. @Override public String execute() throws Exception { for (EX ex1 : exList) { System.out.println(“ex1 = ” + ex1.getName()); } return SUCCESS; } public String populate() throws Exception{ System.out.println(“in populate”); […]
我正在研究Struts2 Web应用程序,目前我正面临着表单绑定的问题。 从jsp到action类的绑定不起作用。 方案是我有一个从上一个操作设置的列表。 在当前的jsp中,我迭代列表并在jsp中打印表中的值。 由于要求,我应该使字段可编辑,以便用户可以编辑显示的值并将更新的值提交给下一个操作。 问题是我从jsp编辑的值没有绑定到action类中的列表。 我尝试了多种方法,但直到现在还没有运气。 以下是我尝试过的方式。 我试过值的第一种方式没有受到约束: <tr onclick="SelIndex('’);”> <input type="text" size = "8" value="”/> <input type="text" size = "8" class="dateFilter" value="”/> <input type="text" size = "8" value="”/> <input type="text" size = "10" value="”/> </s:iterator 第二种方式我尝试了不受约束的价值观: <tr onclick="SelIndex('’);”> <input type="text" name="list1[%{#rowStatus.index}].pln_n_n" value="”/> <input type="text" size = "8" name="list1[%{#rowStatus.index}].trd_d" class="dateFilter" value="”/> <input type="text" […]
我正在向同事解释如何使用索引从JSP页面获取列表数据以返回到操作类,如此处和此处所述 。 他不太理解并且自己摸索了一下,直到突然他没有使用指数让它成功! 在他的JSP页面中,他有: 在他的动作课上,他有“适当的”制定者: public List getContactNameList() public void setContactNameList(List list) 我很困惑为什么这项工作。 我认为这是有效的,因为他发送非bean数据(在这种情况下是字符串),并且有一个智能构建到Struts2 / OGNL中,以便将值附加到列表而不是覆盖它们。 任何人都可以详细解释这个“无指数”案件背后的问题吗? 如何使用上面的代码段实例化和填充字符串列表?