在Struts中,我想有一個基礎URL(一個< S:網址...)設置與一些參數(< S:PARAM ...),然後或者參數添加到該URL或改變一些參數的值。例如:如何添加或更改params到struts url標記?
<s:url action="getSomeData" id="baseDataUrl">
<s:param name="someID" value="%{currentID}"/>
</s:url>
我可以再做<s:property value="baseDataUrl" />
,它會吐出像/getSomeData.do?someID=5。 (我在這個例子中保留了params,但是你可以想象有更多的默認參數,例如,我正在使用的應用程序有3個參數,每個URL都是相同的,兩個參數是相同的。)
我希望能夠在定義該基本URL之後添加或更改參數。我夢想着兩種方法:
<s:url base="baseDataUrl" id="breadUrl">
<s:param name="bread" value="%{'toast'}"/>
</s:url>
然後<s:property value="breadUrl" />
會導致/getSomeData.do?someID=5 &麪包吐司=。另一種方法是用佔位符定義基礎URL:
<s:url action="getSomeData" id="baseDataUrl">
<s:param name="someID" value="%{currentID}"/>
<s:param name="bread" />
<s:param name="jelly" />
</s:url>
然後填寫他們時,我問物業:
<s:param url="baseDataUrl" name="bread" value="%{'toast'}"/>
<s:param url="baseDataUrl" name="jelly" value="%{selectedJam}"/>
所以<s:property value="baseDataUrl" />
會導致/getSomeData.do?someID=5 &麪包=吐司&果凍= 7。
s:url(http://struts.apache.org/2.0.14/docs/url.html)的文檔說「動態屬性允許:false」,所以我認爲我冒險進入自定義標籤領域。這感覺就像是一個常見的用例(用一些參數定義一個基本URL,然後添加或改變其中的一些),我不想重新發明輪子。搜索沒有任何結果,但也許我不是在尋找正確的東西。我願意接受各種各樣的建議!
#3是我最終選擇的方法 - 我定義了幾個基準URL,然後s:property'd他們死亡。這不是最優雅的解決方案,但它將我的LOC降低了近60%!謝謝。 – jibberia