在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上的额外参数来自哪里?     
已邀请:
由于
s:link
使用的是http GET而不是http POST,因此seam需要以某种方式知道要调用的动作。因此,它将操作附加到请求参数中。 如果您想避免在请求参数中看到任何内容,则必须使用生成http post的链接,例如
<h:commandLink>
但是,我没有看到任何你想要隐藏动作的原因。 如果您害怕请求伪造,可以使用组件或方法上的
@Restrict
@Permission
注释强制执行操作。     
那是对的。因为你在s:seam中有一个action参数。该操作将在后端执行,然后将评估页面导航规则。 也许你想使用h:outputLink?     
您可以使用URL重写过滤器使URL看起来更好。     

要回复问题请先登录注册