使用標籤呼叫struts2的action、傳遞動態引數、以及引數中出現加號等特殊字元的處理方法
首先說一下我的web應用是通過<a>標籤呼叫struts2框架下的一個action,給該action傳遞一個引數,然後action通過這個引數進行相應的處理。
方法是: <a href="../actionName?phoneName=XXX">點選我</a>
問號後面是引數的名稱。當然呼叫的action裡面要有相應的變數來接受這個引數。
那麼如果引數是動態生成的,比如我要傳遞的引數phoneName並不是一個固定的值,而是另一個action生成的。
比如我的應用中,要展示一個手機產品的頁面。但是這個頁面的所有資訊就是一個action,比如是action1生成的,因此裡面的所有資料也都是action1返回的。那麼我在action1生成的頁面裡點選<a>標籤想要呼叫action2,但是引數卻是action1生成的引數。則可以採用如下方法:
<a href="../actionName?phoneName=<s:propertyvalue='phoneName'/>">點選我</a>
這裡直接使用<s:proerty>標籤獲得action1返回的引數。phoneName就是action1返回的一個引數名稱。注意使用單引號括起來。
再有一個問題就是,如果我的引數,比如上例中的phoneName,是iphone 6,但是url地址中並不允許出現空格。因此如果phoneName直接是iphone 6,就無法正確執行該action。這時候需要用一些其他字元來代替這些特殊字元:
+ %2B
空格 %20
/ %2F
? %3F
% %25
# %23
& %26
= %3D
比如你要傳遞的引數是Galaxy S6 Edge+,那麼正確的url應該是Galaxy%20S6%20Edge%2B
本人剛剛開始學習web開發,如有不足請指正,謝謝!