日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Struts(十):OGNL表达式(一)

發(fā)布時(shí)間:2025/6/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts(十):OGNL表达式(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • Struts2 用s:porperty標(biāo)簽和OGNL表達(dá)式來(lái)讀取值棧中的屬性值:

I、值棧中的屬性值:
  1、對(duì)象棧:讀取對(duì)象棧中的某一個(gè)對(duì)象的屬性值;
  2、Map棧 :request,session,application的一個(gè)屬性值或一個(gè)請(qǐng)求參數(shù)的值。

II、讀取對(duì)象棧(ObjectStack)中的對(duì)象屬性:
  1、若想讀取Object Stack里的某個(gè)對(duì)象的屬性,可以通過(guò)以下集中形式之一:
    object.propertyname
    object['propertyname']
    object["propertyname"]
  2、ObjectStack中的對(duì)象可以從0開(kāi)始的的下表來(lái)引用,ObjectStack里的棧頂對(duì)象可以用[0]來(lái)引用,它下面的那個(gè)對(duì)象可以用[1]引用。
    [0].message
  3、[n]的含義是從第n個(gè)開(kāi)始搜索,而不是值搜索第n個(gè)對(duì)象
  4、若從棧頂對(duì)象開(kāi)始搜索,則可以省略下標(biāo)部分:message
  5、結(jié)合s:property標(biāo)簽<s:property value="[0].message" />或者 <s:property value="message"/>(通常情況下都采用這種方式來(lái)寫(xiě))

<%@ taglib prefix="s" uri="/struts-tags"%>

備注:如果需要使用s:property標(biāo)簽,必須在jsp頁(yè)面頭部引入:

?

III、默認(rèn)情況下,action會(huì)被struts2自動(dòng)放在值棧的頂部。

  • 值棧屬性讀取示例:

?基于《Struts(九):值棧(OGNL)》這一篇文章的例子基礎(chǔ)上,修改details.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body><s:debug/><s:property value="productName"/><br/> ${productDesc}<br/> ${productPrice}<br/></body> </html>

調(diào)試啟動(dòng)tomcat,輸入地址:http://localhost:8080/Struts_01/,頁(yè)面:

點(diǎn)擊“提交”按鈕,跳轉(zhuǎn)到details.jsp

點(diǎn)開(kāi)[Debug]

這里邊的com.dx.sturts2.valuestack.Product存儲(chǔ)的對(duì)象就是Action,被存儲(chǔ)到了ValueStack的棧頂,所以details.jsp頁(yè)面可以使用${productDesc},相當(dāng)于<s:property value="[0].productDesc"/> 也相當(dāng)于<s:property value="productDesc"/>

添加一個(gè)Product2.java:

1 package com.dx.struts2.valuestack; 2 3 4 public class Product2 { 5 private String productName; 6 private String productDesc; 7 8 public String getProductName() { 9 return productName; 10 } 11 12 public void setProductName(String productName) { 13 this.productName = productName; 14 } 15 16 public String getProductDesc() { 17 return productDesc; 18 } 19 20 public void setProductDesc(String productDesc) { 21 this.productDesc = productDesc; 22 } 23 24 } View Code

修改Product.java Action save方法:

public String save(){ System.out.println("save");// 1、獲取值棧對(duì)象ValueStack valueStack= ActionContext.getContext().getValueStack();// 2、生成一個(gè)Product2對(duì)象Product2 product2=new Product2();product2.setProductDesc("product2 desc");product2.setProductName("product2 name");// 3、將Product2對(duì)象存放到值棧中 valueStack.push(product2);return "success";}

繼續(xù)查看details.jsp:

調(diào)試Product的save方法:

從截圖我們可以知道:Action類對(duì)象在進(jìn)入save方法之前就已經(jīng)被放入到棧頂。

details.jsp:

點(diǎn)開(kāi)[Debug]

?

轉(zhuǎn)載于:https://www.cnblogs.com/yy3b2007com/p/6538147.html

總結(jié)

以上是生活随笔為你收集整理的Struts(十):OGNL表达式(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。