ognl

Mybatis04--动态SQL

喜你入骨 提交于 2020-04-20 09:55:07
前言: 在以前我们使用JDBC或者其它框架时,一件很痛苦的事情是根据不同条件拼接 SQL 语句。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。然而现在,我们利用动态 SQL 这一特性就可以彻底摆脱这种痛苦。 通常使用动态SQL不可能是独立的一部分,MyBatis当然使用一种强大的动态SQL语言来改进这种情形,这种语言可以被用在任意映射的SQL语句中。 动态SQL元素和使用JSTL或其它相似的基于XML的文本处理器相似,在MyBatis之前的版本中,有很多元素需要了解,MyBatis3大大地提升了它们,现在用不到原先一半的元素就能工作了,MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。 if: 动态 SQL 通常要做的事情是有条件地包含 where 子句的一部分。比如: < select id= "findBlog" resultType= "Blog" > SELECT * FROM BLOG WHERE state = ‘ACTIVE’ < if test= "title != null" > AND title like #{title} </ if > </ select > 这条语句提供了一个可选的文本查找类型的功能。 如果没有传入“title”,那么所有处于“ACTIVE”状态的BLOG都会返回 ;反之若传入了“title”

Thymeleaf入门入门入门入门入门入门入门入门入门入门入门

假如想象 提交于 2020-04-10 17:57:55
Thymeleaf 官网部分翻译:反正就是各种好 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp。而是Thymeleaf和Freemarker等,而Thymeleaf与SpringMVC的视图技术,及SpringBoot的自动化配置集成非常完美,几乎没有任何成本,你只用关注Thymeleaf的语法即可。 Thymeleaf的特点 动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。 开箱即用:它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。 多方言支持:Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

struts2(三)——Ognl 与值栈

牧云@^-^@ 提交于 2020-04-05 16:10:46
什么是OGNL OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。 OGNL与EL表达式对比 OGNL对象图导航语言,比EL表达式强大很多倍的语言 EL表达式只能从域中获取数据 OGNL可以调用对象的方法,获取struts的值栈的数据。 OGNL是第三方的表达式语言,用它来获取struts中值栈的数据 OGNL功能 支持运算符(如+-*/) 支持对象方法调用,如xxx.doSomeSpecial(); 支持类静态的方法调用和值访问 支持赋值操作和表达式串联 访问OGNL上下文 操作集合对象 可以直接new一个对象 OGNL使用要素 表达式 根对象 Context对象(非根对象) OGNL入门 OGNL核心OgnlContext,本质就是一个map java程序使用ognl @Test public void test(){ OgnlContext ognlContext = new OgnlContext(); ognlContext.setRoot("aaa"); Object obj = Ognl.getRoot(ognlContext); System.out.println(obj); }

[ SSH框架 ] Struts2框架学习之三(OGNL和ValueStack值栈学习)

泄露秘密 提交于 2020-04-02 05:24:49
一、OGNL概述 1.1 什么是OGNL   OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换。如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁。 1.2 OGNL的作用    Struts2默认的表达式语言就是OGNL,它具有以下特点:   ● 支持对象方法调用。例如: objName. methodName( )。   ● 支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[ 方法名|值名 ]。例如:@ java.lang.String@format("foo%s","bar")。   ● 支持赋值操作和表达式串联,例如: price=100, discount=0.8, calculateP rice( ),在方法中进行乘法计算会返回80   ● 访问OGNL上下文( OGNL context)和 ActionContext。   ● 操作集合对象。 1.3 OGNL的要素 了解了什么是 OGNL及其特点后,接下来, 分析一下 OGNL的结构。OGNL的操作实际上就是 围绕着

SpringEL表达式(一)-入门案例

自闭症网瘾萝莉.ら 提交于 2020-03-10 07:45:17
原文链接: http://www.yiidian.com/spring/spring-el-helloworld.html 在Spring3中就已经支持EL表达式了, Spring Expression Language(SpEL)是类似于OGNL和JSF EL的表达式语言, 能够在运行时构建复杂表达式, 存取对象属性、调用对象方法等, 而且所有的SpEL都支持XML和Annotation两种方式, 使用的格式均为:#{SpEL expression}。 下面的例子,这个例子将展示如何利用SpEL注入String、Bean到属性中。 一、编写Bean类 Customer.java package com.yiidian.domain; import java.io.Serializable; /** * * @author http://www.yiidian.com * */ public class Customer implements Serializable{ private String name; private String telephone; public String getName() { return name; } public void setName(String name) { this.name = name; } public String

ValueStack和OGNL达到Struts2形式的数据存储原理

左心房为你撑大大i 提交于 2020-03-03 21:03:23
(1)最近学习struts相框,我们在快乐struts强大。为了便于使用转发,但不了解详细的内部数据存储; (2)网上找了很多关于struts数据存储的原理,但我还没有找到一个具体的解释,本书上找到了 ValueStack和OGNL实现Struts2表单数据的存储原理 特分享给大家! (3)下面是部分截图:解说了关于struts框架中数据表单等的存储! 感觉这本书解说的确实非常好!须要的回复油箱地址发给你们! 版权声明:本文博主原创文章,博客,未经同意,不得转载。 来源: https://www.cnblogs.com/gcczhongduan/p/4758267.html

OGNL, JSTL, STRUTS2标签中符号#,$,%的用法示例

℡╲_俬逩灬. 提交于 2020-03-02 11:05:18
取Session中的值 <c:out value="${sessionScope.user.userId}"></c:out><br> <c:out value="${user.userLoginName}"></c:out><br> <s:property value="#session.user.userId"/><br> ${session.user.userId}<br> ${sessionScope.user.userId}<br> 基本语法 一、EL简介 1.语法结构 ${expression} 2.[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如: ${sessionScope.user[data]}中data 是一个变量 3.变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 假如途中找到username,就直接回传

Editing ArrayList of objects with struts 2 form tag

99封情书 提交于 2020-01-27 03:09:46
问题 I have 2 classes - Student and Course . Both have all getters and setters defined on the attributes inside them. Using these two classes I am trying to build a web application with general functions like editing and adding students in different jsp pages. I student could have enrolled in multiple courses and marks for each course of each student should be editable inside the app. Now i have a studentMarks.jsp which loads the data from an action class - StudentAction public class StudentAction

How to add a condition in Struts iterator tag?

耗尽温柔 提交于 2020-01-15 13:33:45
问题 I want to highlight a row when the value of rating is less than or equal to 2 . I am not able to use the <s:if> to get my result. Please tell me how to put condition in my JSP page. <table> <s:iterator value="fb" status="abc"> <s:if test="#abc.rating==2"> <td style="background: #CCCCCC"> </s:if> <tr> <td><s:property value="cid"/></td> <td><s:property value="cname"/></td> <td><s:property value="rating"/></td> <td><s:property value="likes"/></td> <td><s:property value="dislikes"/></td> <td><s

How do I convert a JSP variable to a Struts2 variable?

故事扮演 提交于 2020-01-15 05:26:49
问题 How do I convert a JSP variable to a Struts2 variable? I've tried the following: <%=scoredDocument%> <s:push value="scoredDocument"/> <s:push value="#scoredDocument"/> <s:push value="%{scoredDocument}"/> <s:push value="${scoredDocument}"/> <s:push value="#page.scoredDocument"/> <s:push value="%{#page.scoredDocument}"/> <display:column title="Study Code" sortable="true"> <s:property value="id"/> The most frequent error is Caused by: tag 'push', field 'value': You must specify a value to push