技术文章
当前位置:首页 > Java技术文章 > Struts2 通过ognl表达式实现投影

Struts2 通过ognl表达式实现投影的方法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:103

这篇文章主要知识点是关于struts2、ognl表达式、struts2的ognl表达式、struts2、projection、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下java相关的电子书

Java虚拟机基础教程
  • 类型:java大小:78.6 MB格式:PDF出版:人民邮电出版社作者:文森特·范德利昂
立即下载

更多Java相关的学习资源可以参阅 Java电子书程序设计电子书 等栏目。

Struts2 通过ognl表达式实现投影

projection(投影):俗话说就是过滤,就是过滤器把符合条件的过滤出来

struts.xml:

<package name="ognl" namespace="/ognl" extends="struts-default"> 
 <action name="pro" class="cn.edu.hpu.ognl.OgnlAction4"> 
      <result name="success">/ognl.jsp</result> 
    </action> 
</package> 

OgnlAction4.java:

package cn.edu.hpu.ognl; 
import java.util.ArrayList; 
import cn.edu.hpu.mode.User; 
import com.opensymphony.xwork2.ActionSupport; 
public class OgnlAction4 extends ActionSupport{ 
  private ArrayList<User> users; 
  public OgnlAction4(){ 
    users=new ArrayList<User>(); 
    User user1=new User(); 
    user1.setAge(18); 
    User user2=new User(); 
    user2.setAge(1); 
    User user3=new User(); 
    user3.setAge(21); 
    User user4=new User(); 
    user4.setAge(23); 
    users.add(user1); 
    users.add(user2); 
    users.add(user3); 
    users.add(user4); 
  } 
  public ArrayList<User> getUsers() { 
    return users; 
  } 
  public void setUsers(ArrayList<User> users) { 
    this.users = users; 
  } 
  @Override 
  public String execute() throws Exception { 
    // TODO Auto-generated method stub 
    return "success"; 
  } 
} 

链接:

过滤:<a href="<%=basePath%>ognl/pro" rel="external nofollow" >OGNL9</a><br/> 

结果界面:

<!-- 正则表达式中,"^"代表开头,"$"代表结尾,"?"代表过滤 --> 
<li>投影(过滤):<s:property value="users.{?#this.age==1}.{age}"/><br/> 
<!-- 找到所有年龄大于1的user,取第一个 --> 
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/><br/> 
<!-- 找到所有年龄大于1的user,取最后一个 --> 
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/><br/> 
<!-- 找到所有年龄大于1的集合,判断这个集合是否为空 --> 
<li>投影:<s:property value="users.{$#this.age>1}.{age} == null"/><br/> 

结果:

投影(过滤):[1]
投影:[18]
投影:[23]
投影:false

总结

以上就是本文关于Struts2 通过ognl表达式实现投影的全部内容,希望对大家有所帮助。有问题请留言,小编会及时回复大家的。感谢大家对码农之家网站的支持!

以上就是本次给大家分享的关于Java的全部知识点内容总结,大家还可以在下方相关文章里找到Spring boot Admin使用eureka监控、 java单例模式知识点深入了、 解决SpringMVC @RequestBody 用、 等java文章进一步学习,感谢大家的阅读和支持。

上一篇:Spring Cloud 使用随机端口实例

下一篇:java中设计模式的实例用法

展开 +

收起 -

Struts2 相关电子书
Struts2 学习笔记
网友NO.483255

Struts2动态结果集代码示例

动态结果集可以在action中指定要跳转的页面(${}是OJNL表达式,不是EL表达式) struts.xml: package name="resultTypes" namespace="/r" extends="struts-default" action name="result_mul" class="cn.edu.hpu.action.ResultAction" !-- 这种写法代表在配置文件中可以用这种方法去读值栈里面的内容 -- result${r}/result /action /package ResultAction.java: package cn.edu.hpu.action; import com.opensymphony.xwork2.ActionSupport; public class ResultAction extends ActionSupport { private int type; private String r="/Hello.jsp"; public int getType() { return type; } public void setType(int type) { this.type = type; } public String getR() { return r; } public void setR(String r) { this.r = r; } public String execute() throws Exception { //因为r是后来保存在值栈中的,所以能被配置文件以${r} //的形式读到 if(type==1) r="/User_Add_success.jsp"; else if(type==2) r="/User_Add_error.jsp"; return SUCCESS; } } 前台链接: a href="%=basePath %/r……

网友NO.431500

struts2框架的登录制作图文教程

首先: 我们要建一个web项目 接着: 我们先来导入struts的xml文件 第一步: 右击你的项目名,鼠标到MyEclipse会看到一个add struts开头的文件,点开以后看到: 这里我们选择struts2.版本,并且路径我们选择 /* ,因为我们只是简单的登录,所以直接finish. 实体类我们就不写了 ,来看一下关于struts的核心类 aciton的编写。 实现action有两种方法: 1:实现action接口, 2:继承actionsupport类 这里我实现actionsupport类 实现类以后,我们还要给action编写一个默认的执行方法。(自己命名,在这个方法中我们可以做一些登陆的限制) 这里的返回值也就是后来的逻辑视图名称。 写好action之后,我们开始编写struts.xml中的配置信息了 这里的 1号的action name 属性代表要跳转的action类, 2 :class 代表指向action类的权限名 3: 表示返回的逻辑视图名称,后跟真正的视图名(就是浏览器……

网友NO.184592

Struts2拦截器 关于解决登录的问题

拦截器的工作原理如图 拦截器是由每一个action请求(request)都包装在一系列的拦截器的内部,通过redirectAction再一次发送请求。 拦截器可以在Action执行直线做相似的操作也可以在Action执行直后做回收操作。 我们可以让每一个Action既可以将操作转交给下面的拦截器,Action也可以直接退出操作返回客户既定的画面。 接下来我们该如何定义一个拦截器: 自定义一个拦截器如下: 1、实现Interceptor接口或者继承AbstractInterceptor抽象类。 2、创建一个Struts.xml文件进行定义拦截器。 3、在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器(default-interceptor-ref name="myStack"/), 这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截param name="excludeMethods"loginView,login/param。 ①Interceptor接口声明三个方法: public class LoginInterceptor……

网友NO.622651

关于struts2中Action名字的大小写问题浅谈

前言 今天在使用struts框架编写Action类以及在jsp中写调用相关Action的url时出现如下错误: There is no Action mapped for namespace [/] and action name [MainPage] associated with context path [/xxx]. - [unknown location] 记得以前也曾经遇到过这样的错误,可能的原因有: 1,struts.xml文件中配置package时,namespace写错; 2,调用此Action的url写错(app名称多写、namespace写错等); 3,jsp页面基准url没有写; 4,struts.xml的放置路径错误; 5,struts.xml文件的DTD声明写错; 6,web.xml中首页没有写; 但是,这次调试了好几个钟头都不是以上的错误, 而是因为Action类命名错误,开始是MainPageAction.Java,后来改成Mainpage.java,调试通过 惊讶 列入错误原因: 7,Action类命名错误:不能在诸如XXXXXAction的名字XXXX中包含大小写混合。 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

版权投诉 / 书籍推广 / 赞助:520161757@qq.com

上传资源(网友、会员均可提供)

查看最新会员资料及资源信息