如何向a4j:commandLink
添加参数?在我检查调试模式时,参数总是为空。
网页代码:
<a4j:form>
<a4j:commandLink reRender="content" action="#{surveyEvaluationBean.doDetailEvaluation}">
<f:param name="question" value="#{result.question.pK.longValueAsString}" />
<h:graphicImage url="/survey/img/cloverleaf.jpg" styleClass="srv-analysis-cloverleaf" />
</a4j:commandLink>
</a4j:form>
豆:
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
String param = request.getParameter("question");
我刚发现错误。 a4j-components
没有任何问题,错误如下:我无法正确创建问题对象。所以PK真的是空的。我很抱歉浪费你的时间。
答案 0 :(得分:1)
1)这应该有效
Map<String,String> params =
FacesContext.getExternalContext().getRequestParameterMap();
String question = params.get("question");
2)这里实现它的另一种方式
<a4j:commandLink reRender="content" action="#{surveyEvaluationBean.doDetailEvaluation}">
<a4j:actionparam name="question" value="#{result.question.pK.longValueAsString}"/>
</a4j:commandLink>
在bean中你只需要一个getter / setter,你不需要检索 自己的参数。 a4j:actionparam自动完成赋值。 (作者Max Katz)
看这里Sending parameter to a Controller
和最后一个
3)如果您使用EL 2及以上版本,可以将其作为参数发送到doDetailEvaluation
<a4j:commandLink reRender="content" action="#{surveyEvaluationBean.doDetailEvaluation(result.question.pK.longValueAsString)}"/>
答案 1 :(得分:1)
我刚发现错误。 a4j-components
没有任何问题,错误如下:我无法正确创建问题对象。所以PK真的是空的。我很抱歉浪费你的时间。