我通过给予
来转发行动<forward name="sample" path="/sample.do?button=default" />
我想在路径中再添加一个属性,我使用了:
<forward name="sample" path="/sample.do?button=default&value=text" />
...我正在获取org.xml.sax.SAXParseException
任何解决方案吗?
答案 0 :(得分:2)
正如Omnipresent和Shashi已经说过的那样,你必须将&符号编码为&
,以便forward
定义如下所示:
<forward name="sample" path="/sample.do?button=default&value=text" />
但是,struts-config.xml
中定义的网址已被冻结,如果您需要动态更改值或添加其他参数,则可以通过根据转发创建新的ActionForward
来实现你来自mapping.findForward()
。
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());
答案 1 :(得分:1)
<forward name="sample" path="/sample.do?button=default&value=text" />
您可以在前进中传递多个参数。 但你必须使用'&amp; amp;'而不是'&amp;'。
为了严格准确,解析器处理程序应扫描缓冲区中的&符号(&amp;);和左角括号字符(<)
,并用字符串&amp; amp;替换它们。或者&amp; lt;,视情况而定。
因此,转发声明将为
<forward name="sample" path="/sample.do?button=default&amp;value=text" />
答案 2 :(得分:0)
你不能使用'&amp;'在struts-config.xml中
value =文本应该从您的操作中传递...而不是您尝试传递它的方式(在url中)。
您的转发标记必须与某个操作相关联。该动作应该有一个名为value的getter,它返回'text'。
sample.do将以何种方式访问该varable。