struts2中,<s:...>標籤#號問題

  • 作者:由 匿名使用者 發表于 美食
  • 2022-10-15

struts2中,<s:...>標籤#號問題土土土2016.12.02 回答

我說一下我的理解

request裡的東西,都同時也放在了valueStack的頂層。

以前是request、response、context等這些是基本預設物件作為根值物件,在棧的頂層,你可以直接呼叫,比如request。什麼什麼。

現在Sturts2,頂層換了。比如你的request裡先前存了一個叫name的變數,那麼OGNL中,你這樣就可以:

這樣就取到值了。

如果是普通HTML標籤,這樣:

這樣取值。

我覺得它倆反過來就不好用,也不知道是不是我配置的問題。

那麼假如你需要用request或response了,實際上呼叫:

ServletActionContext。getRequest();或

ServletActionContext。getResponse();

現在OGNL用井號#代替了上面,即#request就可以取到了。

又比如你自己一個物件addr出來,那麼這個物件跟預設的那幾個物件,即request、response等等是在一個層次上的,對於以前的jsp,是可以直接呼叫到的,但Struts2不行了。所以: #addr 與 %{addr}或${addr} 是兩個東西,後者是request裡的,當然人為也可能讓它們都指同一個東西。

struts2中,<s:...>標籤#號問題寶貝爸爸愛你2016.12.02 回答

注意作用域,el吧表示式可以取到不代表# 可以直接取,el會逐個掃描各個作用域,但是 不會了,如果存在request中 就要 才可以 ,所以 注意看下你的值儲存的作用域 q群 320748591 歡迎加入討論

struts2中,<s:...>標籤#號問題匿名使用者2016.12.02 回答

標籤很強大! 是獲取值棧裡的值並顯示 從值棧裡取值不用#, 從request, 或變數裡取值要用#

Top