在s:link和f:param
之后的URL中不需要的参数
这是代码(Seam 2,JSF 1.2)
<s:link style="color: white;" value="Full Listing "
rendered="#{not listControl.fullList}"
action="#{listControl.setFullList(true)}" >
<f:param name="maxResults" value="" />
<f:param name="firstResult" value="" />
</s:link>
<s:link style="color: white;" value="Limited Listing "
rendered="#{listControl.fullList}"
action="#{listControl.setFullList(false)}" >
<f:param name="maxResults" value="#{entityMaxResult}" />
<f:param name="firstResult" value="" />
</s:link>
目标是使用此链接在结果列表displayin maxResults和所有结果之间切换。
原始网址是这样的
_http://localhost:8080/ond/ONDList.seam?maxResults=2&state=DE
当我点击链接时,我得到了正确的功能,但生成的URL就是这个
_http://localhost:8080/ond/ONDList.seam?state=DE&actionMethod=pages%2Flist%2FONDList.xhtml%3AlistControl.setFullList%28true%29
然后我又点击了
_http://localhost:8080/ond/ONDList.seam?maxResults=2&state=DE&actionMethod=pages%2Flist%2FONDList.xhtml%3AlistControl.setFullList%28false%29
我期望得到的只是这两个网址:
_http://localhost:8080/ond/ONDList.seam?maxResults=15&firstResult=0&state=AL
和
_http://localhost:8080/ond/ONDList.seam?state=AL
这些URL上的额外参数来自哪里?
没有找到相关结果
已邀请:
3 个回复
翁茄口霉氖
使用的是http GET而不是http POST,因此seam需要以某种方式知道要调用的动作。因此,它将操作附加到请求参数中。 如果您想避免在请求参数中看到任何内容,则必须使用生成http post的链接,例如
但是,我没有看到任何你想要隐藏动作的原因。 如果您害怕请求伪造,可以使用组件或方法上的
或
注释强制执行操作。
距相镭
扫窟