SSH框架中的几大表达式的比较

OGNL表达式和EL表达式、JSTL表达式的比较

OGNL表达式

OGNL一般结合struts2一起使用,在使用的JSP页面需要引入tablib <%@ taglib uri="/struts-tags" prefix="s"%>

OGNL表达式:

1.property标签:用于输出值,当访问session和application等域的时候#标记是不可少的

<s:property value="#session.user.name"/> 表示输出session域中的user对象的name属性,

<s:property value="#session.name"/>表示获取session里面的那么属性,

<s:property value="#application.user.name"/>表示获取application域中的user对象的name属性,

ActionContext.getContext().getSession().put("user", p);//后台struts2的数据存入。

2.set标签:<s:set name="list" value="{‘a‘,‘b‘,‘c‘,‘d‘}"></s:set> 给一个list对象设置值。

3.iterator标签:迭代标签,多用于解析list,map等集合对象

list

<table>
<s:iterator var="n" value="#session.list" status="tag"> //迭代 var表示的是list中的一个个对象,s标签自动循环下一个对象,status指的是当前循环次数(从1开始)
<s:if test="#tag.odd">  //if-else标签 判断奇偶
<tr bgcolor="red">
<td>
<s:property value="#n" />
</td>
</tr>
</s:if>
<s:else>
<tr>
<td>
<s:property value="#n" />
</td>
</tr>
</s:else>
</s:iterator>
</table>

map

<s:iterator value="#session.map">
<s:property value="key"/> : <s:property value="value"/>
</s:iterator>

4.url 标签

<s:url action="test" namespace="/" var="testMethod"></s:url> //url标签是声明一个url链接到域中对象,然后通过a标签的href获取这个对象,所以下面两个a标签的作用是一样的,都是跳转至根空间下的test action的testMethod方法里。
<s:a href="test">11111</s:a>
<s:a href="%{testMethod}">11111</s:a>

5.form 表单

<s:form action="test" method="testMethod">
<s:textfield name="name" label="姓名"/>
<s:password name="name" label="密码"/>
<s:select list="#session.map" listKey="key" listValue="value" label="下拉框">//下拉框,后台可以用map传递到前台
</s:select>
<s:checkbox label=" 爱好" fieldValue="true" name="like"></s:checkbox>
<s:checkboxlist list="#session.map" listKey="key" listValue="value" name="like" value="{‘one‘}"></s:checkboxlist>  //checkbox组,后台可以用map传递到前台,value中放入list则表示初始化勾选中的项
</s:form>

效果图如下:

EL表达式

JSTL表达式

时间: 2024-11-25 13:27:43

SSH框架中的几大表达式的比较的相关文章

spring在SSH框架中的作用

从网上了搜了下sring 在ssh中起的作用,在百度知道上看到下面的回答,觉得简单移动,记录下来备查,原文地址: http://zhidao.baidu.com/link?url=JiONrax-Flkpi5hqs_g1HQOrMm1Dk8U1WT88l5T0Gg01bm3M8fMcjUCpqastVxQTd63gxUl5NLyHUQPdq6E-OK 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行

在SSH框架中,如何得到POST请求的URL和参数列表

在做项目的API通知接口的时候,发现在SSH框架中无法获取到对方服务器发来的异步通知信息.最后排查到的原因可能是struts2对HttpServletRequest进行了二次处理,那么该如何拿到post的请求数据呢,方法很多,下面只给出一种方式. 在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完 整的请求路径和请求所有参数列表, POST的需要getParameterMap()方法遍历得到,不论GET

ssh框架中.xml文件小技巧分离xml

struts.xml文件 struts.xml文件里的action可以分离出来,如: <!-- 预警信息监测 --> <include file="config/struts/warningInformAtion-struts.xml"></include> 注: include是放在</struts>标签的前面 在src下面新建 package 名为:config.struts,再新建xml文件为warningInformAtion-s

在SSH框架中使用Spring的好处(转)

以下是我总结下今天笔试中SSh中的总结: 在SSH框架中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)    struts负责控制Service(业务逻辑处理类),从而控制了

SSH框架中hibernate 出现 user is not mapped 问题

SSH框架中hibernate 出现 user is not mapped 问题 在做SSH框架整合时,在进行DAO操作时.这里就只调用了chekUser()方法.运行时报  user is not mapped 错误 :  chekUser()方法如下:  public boolean chekUser(User user){           String hql="from user u where u.id=? and u.name=?";        Query quer

SSH框架中Spring框架搭建的初步理解(一)

接手基于SSH框架的web项目已经一个月有余了.早有听说javaweb三大框架,第一次接触,先来说下感受. 我感觉SSH框架最明显的优点有如下: 采用MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现. 通过配置文件,就可以掌握整个系统各个部分之间的关系. 通过AOP,可以实现事务管理和日志管理. 其中Spring框架能使你通过最简单可行的方法来解决问题,这是非常高效的.但是它的搭建也略微复杂,尤其是对于我这样的新手来说,所以开此篇记录一下SPring框架的搭建: 创建web项目,导入SS

SSH框架中spring的原理

在ssh项目中,是有明确分工的,spring的作用就相当于将struts和hibernate连接起来,是将两个没有关系的框架的特性,方法,action都放在spring的配置文件中使他们建立关系.取他门各自所长.而这些做法他们自己不知道,他们是听命于spring调度的,他的的任务只是做好自己的事情.    这样做的好处就是任务结构分明,struts只管理显示与做什么,hibernate只关心怎么做,而spring就相当于领导,所以一切的类都要交给spring的工厂创建,这是一种良好的开发模式,体

在SSH框架中使用Spring的好处

在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)   struts负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依

SSH框架中NoSuchMethodError: antlr.collections.AST.getLine()的解决方案

问题: 当配置好SSH框架后,使用Hibernate的Query功能时发生如下异常: NoSuchMethodError: antlr.collections.AST.getLine() 原因: Struts2中的antlr-2.7.2jar包与Hibernate中的antlr-2.7.2冲突. 解决方案: 1 在MyEclipse中将Strut2的antlr-2.7.2移除 2 在Tomcat的webapps对应的项目下,将lib目录的antlr-2.7.2.jar包删除(这是Struts2的