html:link中的name,paramId,paramName和paramProperty四個屬性的使用心得

看了一些使用html:link的文章,大多隻是說了paramId結合paramName和paramProperty的使用。下面將會用到name,paramId,paramName和paramProperty一起使用的效果。

首先是先解釋簡單的應用paramId,paramName和paramProperty

<html:link action="/atctionName"  paramId="paramValue" paramName="beanName" paramProperty="beanProperty" >點擊鏈接</html:link>

假設在scope範圍中,有一個bean叫beanName,beanName的一個屬性beanProperty的值爲value,那麼當你點擊鏈接之後會有下面的鏈接效果:

http://localhost:8080/projectName/atcionName?paramValue=value

 paramId屬性是讓你告訴jsp編譯引擎你要傳送的參數是那個。

paramName屬性是使用那個bean,paramProperty屬性是使用這個bean的那個屬性,兩者的結合就是讓你告訴jsp編譯引擎你要利用參數傳送bean中屬性的值.

上面只可以傳送一個參數,但在應用中往往不夠的,name屬性就是專門用來傳送多個參數的。

name屬性必須是map類型的變量。

假設如果你定義下面的一個map:

Map mapName=new HashMap();

mapName.put("paramValue1","value1");

mapName.put("paramValue2","value2");

request.setAttribute("mapName",mapName);

在jsp頁面有下面的一個鏈接:

<html:link action="/atctionName"  name="mapName">點擊鏈接</html:link>

點擊鏈接後的效果:

http://localhost:8080/projectName/atcionName?paramValue1=value1&paramValue2=value2

當我在一次實踐中,聯想了一下,當解析tag時應該會解析全部所用到的屬性,所以就做了下面的一個測試,

下面是一個四個屬性一起使用的例子:

<html:link action="/atctionName"   name="mapName"  paramId="paramValue" paramName="beanName" paramProperty="beanProperty" >點擊鏈接</html:link>

得到的效果是:

http://localhost:8080/projectName/atcionName?paramValue1=value1&paramValue2=value2&paramValue=value

所有屬性的值都解析出來了。

這樣的效果可以用在你想一級一級的推論下去達到的鏈接效果。也就是說,當你提交之後,你可以把

paramValue的值put進mapName的Map中,再返回,用在name屬性上。當你想返回上面一級的時候可以

remove掉。或者當你的參數存放的是數據庫中多個表格的級聯主健,當你想向後查詢上級表格時你就可以直接拿到主健進行查詢,不用一級一級向數據庫往回查詢推出主健。

 

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章