1. 程式人生 > >使用標籤呼叫struts2的action、傳遞動態引數、以及引數中出現加號等特殊字元的處理方法

使用標籤呼叫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開發,如有不足請指正,謝謝!