2009-10-27 55 views
1

我轉發到,方法是將作爲轉發在Struts

<forward name="sample" path="/sample.do?button=default" /> 

我想在路增加一個屬性,我用:

<forward name="sample" path="/sample.do?button=default&value=text" /> 

...和我正在組織.xml.sax.SAXParseException

它的任何解決方案?

回答

0

你不能在struts-config.xml中使用「&」

值=文本應該從行動傳遞...不是你想通過它(以URL)的方式。

您的轉發標記必須與某個操作關聯。該行爲應該有一個名爲value的getter,它返回'text'。

什麼樣的sample.do將有權訪問該可變數據。

1
<forward name="sample" path="/sample.do?button=default&value=text" /> 

您可以向前傳遞多個參數。 但是你必須使用'& amp''而不是'&'。

要嚴格準確,解析器處理程序應掃描符號字符(&)的緩衝液;和左尖括號字符(<)和與琴絃&安培取代它們;或適當地,可以是& lt。

所以,向前聲明將作爲

<forward name="sample" path="/sample.do?button=default&amp;amp;value=text" /> 
2

隨着無所不在,沙市已經說了,你必須將符號編碼爲&amp;,使得forward定義是這樣的:

<forward name="sample" path="/sample.do?button=default&amp;value=text" /> 

然而,則struts-config.xml中定義的URL將被凍結,如果您需要動態更改值或添加其他參數,則可以通過基於從012獲得的轉發創建新的。

ActionForward forward = mapping.findForward("sample"); 
StringBuilder path = new StringBuilder(forward.getPath()); 
path.append("?id="); 
path.append(someobject.getId()); 
path.append("&value="); 
path.append(getValue()); 
return new ActionForward(path.toString());