免責事項:この記事はブロガーオリジナル記事です、続くBY CC 4.0著作権の契約、再現し、元のソースのリンクと、この文を添付してください。
、OGNLのプロフィール
OGNLは、グラフィックナビゲーション言語(オブジェクトグラフナビゲーション言語)頭字語、Struts2のオープンソースプロジェクトの統合、およびデフォルトの表現言語としてStruts2のフレームワークOGNLの使用であるオブジェクトです。OGNL式を使用するためにはStruts2のでは、Struts2のタグライブラリをインポートする必要があります。
メインスコープからデータをフェッチするため、JSPの前述した機能と同様OGNL EL式。
JSP EL式について、私のブログを参照してのJSPにJava WebにEL式
第二に、OGNLの簡単な使用
s:property类型于JSP的表达式,把value的值直接输出到页面
jsp表达式:【<jsp:setProperty property="" name=""/>】
value属性的值就是一个OGNL表达式
如果想把value属性的值当字符串输出,加单引号即可
<%--
Created by IntelliJ IDEA.
User: hestyle
Date: 2019/10/26
Time: 11:19 上午
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%-- 使用OGNL表达式必须导入struts标签库 --%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>OGNL表达式</title>
</head>
<body>
<%-- value属性表示需要取出的变量对应的名称 --%>
<s:property value="OGNL"/><br>
<%-- value属性中含有单引号,表示直接输出字符串"GNL表达式" --%>
<s:property value="'OGNL表达式'"/>
</body>
</html>
ブラウザアクセスindex.jspページ
三、OGNL機能
①、访问对象方法
②、访问静态属性
③、访问静态方法
<%--
Created by IntelliJ IDEA.
User: hestyle
Date: 2019/10/26
Time: 11:19 上午
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%-- 使用OGNL表达式必须导入struts标签库 --%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>OGNL表达式</title>
</head>
<body>
<%-- value属性表示需要取出的变量对应的名称 --%>
<s:property value="'OGNL表达式 长度'"/>
<%-- value属性中含有单引号,访问字符串的length()方法 --%>
<s:property value="'OGNL表达式'.length()"/><br>
<%-- 获取Long包装类中的常量,最大值 --%>
<s:property value="'long类型的最大值'"/>
<s:property value="@java.lang.Long@MAX_VALUE"/><br>
<%-- 获取Math类中的静态常量,π --%>
<s:property value="'π = '"/>
<s:property value="@java.lang.Math@PI"/><br>
<%-- 获取Math类中的静态生成随机数方法 --%>
<s:property value="'随机数'"/>
<s:property value="@java.lang.Math@random()"/><br>
</body>
</html>
OGNLアクセス静的メソッド、定数する必要性によってstruts.xml
、この機能をオンにします。
<!-- 开启ognl访问静态方法、常量的功能 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
デフォルトではdefault.properties
ファイルに閉じています。
④、封装list数据
⑤、封装Map数据
<%--
Created by IntelliJ IDEA.
User: hestyle
Date: 2019/10/26
Time: 11:19 上午
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%-- 使用OGNL表达式必须导入struts标签库 --%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>OGNL表达式</title>
</head>
<body>
<!-- label属性是浏览器显示的标签,name是表单后端的名称(如果是表单) -->
<%-- 封装一个list --%>
<s:radio list="{'女','男'}" label="性别" name="gender"/><br>
<%-- 封装一个map(注意有一个#号) --%>
<s:radio list="#{'true':'已婚','false':'未婚'}" label="是否已婚" name="married"/><br>
<s:checkboxlist list="#{'编码':'编码','撩妹':'撩妹','开车':'开车'}" label="爱好" name="hobbies"/><br>
</body>
</html>
第四に、struts.xmlでの使用のOGNL式
前回のブログではStruts2のフレームワークをダウンロードしたファイルの動的セットのダウンロードファイル名のケースを示しています。
設定ファイルを変更しますと呼ばれるjava.net.URLEncoder
クラスの静的メソッドをencode()
。
でstruts.xmlでOGNL表現形式を使用して${变量名}
髪にJSP EL式のように、。