ognl

SpringBoot整合Thymeleaf

有些话、适合烂在心里 提交于 2020-01-09 19:46:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 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 完美集成的可选模块

el表达式跟ognl表达式的区别

岁酱吖の 提交于 2020-01-09 19:40:45
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.区别 用法区别: OGNL是通常要结合Struts 2的标志一起使用,如<s:property value="#xx" /> struts页面中不能单独使用,el可以单独使用 ${sessionScope.username} 页面取值区别: 用于按request > session > application顺序访问其属性(attribute) #attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为 2.ognl讲解 OGNL 是 Struts 2默认的表达式语言。是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 1.#符号的用途一般有三种。 1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上 ,#相当于ActionContext.getContext(); ;#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute(”msg”) 。 2)用于过滤和投影(projecting)集合,如示例中的persons.

OGNL表达式struts2标签“%,#,$”

China☆狼群 提交于 2020-01-09 19:40:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、什么是OGNL,有什么特点? OGNL(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言。是一种可以方便地操作对象属性的开源表达式语言。OGNL有如下特点: 1、支持对象方法调用,形式如:objName.methodName(); 2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路)]@[方法名 | 值名],例如: @java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME; 3、支持赋值操作和表达式串联,例如: price=100, discount=0.8, calculatePrice(),这个表达式会返回80; 4、访问OGNL上下文(OGNL context)和ActionContext; 5、操作集合对象。 二、使用OGNL表达式 OGNL要结合struts标签来使用。由于比较灵活,也容易把人给弄晕,尤其是“%”、“#”、“$”这三个符号的使用。由于$广泛应用于EL中,这里重点写%和#符号的用法。 1、“#”符号有三种用途: (1)、访问非根对象(struts中值栈为根对象)如OGNL上下文和Action上下文,

MyBatis动态SQL(认真看看, 以后写SQL就爽多了)

╄→гoц情女王★ 提交于 2020-01-06 18:21:58
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> (给Java技术江湖加星标,提高Java技能) 转自:博客园,作者:阿进得写字台 www.cnblogs.com/homejim/p/9909657.html 0 一起来学习 mybatis 你想不想来学习 mybatis? 学习其使用和源码呢? MyBatis 令人喜欢的一大特性就是动态 SQL。在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的。MyBatis 动态 SQL 的出现, 解决了这个麻烦。 MyBatis通过 OGNL 来进行动态 SQL 的使用的。 目前, 动态 SQL 支持以下几种标签 <figure data-block="true" data-editor="fj6sl" data-offset-key="e7aul-0-0" contenteditable="false"> </figure> 1 数据准备 为了后面的演示, 创建了一个 Maven 项目 mybatis-dynamic, 创建了对应的数据库和表 <pre data-offset-key="9am2l-0-0"> <pre data-block="true" data-editor="fj6sl" data-offset-key="9am2l-0-0"> DROP TABLE IF

Struts2 binding a map inside an object to an action attribute

你离开我真会死。 提交于 2020-01-05 04:43:12
问题 Part 1: There is an object (ObjectA) which has another object (ObjectB). There is a Hashmap inside the Object B. This hashmap has a string as key and another object "ObjectC" as value. This hashmap has been displayed on the jsp using the s:iterator and s:textfield and it is being displayed correctly. i.e. the "values" inside the s:textfield are correct but the "name" are not. Now, the problem arises when the textfield is modified. How do we capture the modified values inside ObjectC in the

Getting List for Select tag from Map<List<Object>> based on iterator index

梦想与她 提交于 2020-01-03 05:09:49
问题 I have a Map containing List s like below. Map<String,List<Object>> dynamicList = new HashMap <String,List<Object>>(); In the above Map I have keys like dynamiclist1 , dynamiclist5 , dynamiclist6 , etc. I have to show this dynamicList based on another iterator index like below: <s:iterator value="listOne" var="list" status="stat"> <s:select name="col%{#stat.index}" listKey="KEY" listValue="VALUE" list="#dynamicList.dynamiclist%{#stat.index}" /> </s:iterator> I want something like this

Getter Property (without property and setter) Access Via ValueStack

*爱你&永不变心* 提交于 2020-01-03 03:21:22
问题 public class MyAction extends ActionSupport { public String getMyValue() { return "SomeText"; } ... } I have this MyAction class. Now, the question is that when I refer myValue in my JSP page using OGNL, will it create the myValue property on ValueStack , or will it just call the getter method? 回答1: It will call a getter method. The OGNL when evaluating an expression finding a property accessor corresponding to the name of the property. It's doing it using reflection on the method basis via

How to put variable in OGNL tag

試著忘記壹切 提交于 2020-01-03 00:01:18
问题 <input type="radio" name="${questions.qid}" value="${questions.ans1}" <s:if test="%{(#session.map.get(1)).equals(\'ans1\')}">checked</s:if>><s:property value="#attr.questions.ans1"/> In this code 'questions' is a list which contain questions object with String question,ans1,ans2,ans3. In my program, I will make it appears in browser like Question 1 (RadioButton) Answer 1 (RadioButton) Answer 2 (RadioButton) Answer 3 Question 2 (RadioButton) Answer 1 (RadioButton) Answer 2 (RadioButton) Answer

How to put variable in OGNL tag

不打扰是莪最后的温柔 提交于 2020-01-03 00:00:39
问题 <input type="radio" name="${questions.qid}" value="${questions.ans1}" <s:if test="%{(#session.map.get(1)).equals(\'ans1\')}">checked</s:if>><s:property value="#attr.questions.ans1"/> In this code 'questions' is a list which contain questions object with String question,ans1,ans2,ans3. In my program, I will make it appears in browser like Question 1 (RadioButton) Answer 1 (RadioButton) Answer 2 (RadioButton) Answer 3 Question 2 (RadioButton) Answer 1 (RadioButton) Answer 2 (RadioButton) Answer

Struts 2 s:select with values from resource bundle

丶灬走出姿态 提交于 2020-01-02 03:26:29
问题 We are using the s:select to show a list of string from resource bundle. In the Action: //bank codes will be something [12,13,14] List<String> bankCodesList; //with setter and getter String selectedBankCode; In the message resources each bank will have a name: bank.code.12= ALFM Bank bank.code.13= RIHN Bank .... In the JSP: <s:select name = "selectedBankCode" list = "bankCodesList" listKey = "toString()" listValue = "%{getText('bank.code.' + toString())}" /> As the bank list is List<String>