ユーザーがinputFieldに数値を入力し、ボタンをクリックすると、その数値をページへのパラメーターとして使用してページに送信される小さなフォームを作成する必要があります。
これまでのところ、私はこれに入りました:
<p:inputText id="myText" style="width:75px;" />
<p:commandButton id="myButton" value="Ir"
action="/site/page.xhtml?id=${param['form:myButton']}"
title="Ir" ajax="false" proces="@this,myText" />
${param['form:myButton']}
とで試してみました#{param['form:myButton']}
が、エラーは同じです。
問題は、JSFがそれをメソッド式だと考えていることです...
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/intranet] threw exception [/myPage action="/site/page.xhtml?id=${param['form:myButton']}".xhtml @95,41 action="/site/page.xhtml?id=${param['form:myButton']}" Not a Valid Method Expression: action="/site/page.xhtml?id=${param['form:myButton']}" with root cause
javax.el.ELException: Not a Valid Method Expression: action="/site/page.xhtml?id=${param['form:myButton']}"
at org.apache.el.lang.ExpressionBuilder.createMethodExpression(ExpressionBuilder.java:236)
at org.apache.el.ExpressionFactoryImpl.createMethodExpression(ExpressionFactoryImpl.java:55)
at org.jboss.weld.util.el.ForwardingExpressionFactory.createMethodExpression(ForwardingExpressionFactory.java:43)
at org.jboss.weld.el.WeldExpressionFactory.createMethodExpression(WeldExpressionFactory.java:64)
at com.sun.faces.facelets.tag.TagAttributeImpl.getMethodExpression(TagAttributeImpl.java:222)
at com.sun.faces.facelets.tag.jsf.ActionSourceRule$ActionMapper2.applyMetadata(ActionSourceRule.java:104)
at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81)
at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129)
at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:402)
これは一番下の例外トレースです。
質問: ボタンがクリックされたときに入力フィールドに入力された値をボタンのアクションに渡すにはどうすればよいですか? これにより、ブラウザーはバッキングに頼らずに、入力の値をパラメーターとして渡して目的のページに移動します。豆。
サーバーと通信する必要はありません。ページを転送するだけです。
JSF と連携して jQuery またはプレーンな JavaScript を使用するソリューションも受け入れられます。
mojarra、primefaces 3.3.1を使用