0

I wish to pre-populate a jsf form based on the parameters in a query string. How do I go about this?

2
  • Are they GET request parameters? Commented Jan 15, 2014 at 10:15
  • as its a query string - yes. Commented Jan 15, 2014 at 10:19

2 Answers 2

3

Use the f:viewParam utility. Having this url:

/myForm.xhtml?nameField=Anthony

You can set the view parameter before the form itself gets rendered. Using this code in your form view:

<f:metadata>
    <f:viewParam name="nameField"
        value="#{formBean.name}" />
</f:metadata>
<h:form>
    <h:inputText value="#{formBean.name}" />
    <h:commandButton value="Send name" action="#{formBean.sendName}" />
</h:form>

The value you have specified will be set as default for the input.

See also:

Sign up to request clarification or add additional context in comments.

5 Comments

This is great thanks. However now I have a problem that the ajax for the update of these inputs is not triggered :(
I'll have a go at solving myself first
That's just the way to go. Good luck!
an update. I solved the problem mentioned in the above comment by calling the action on the page load with primefaces' remoteCommand autorun="true"
Depending on your case consider also using f:viewAction if JSF 2.2 available.
-1

Write a bean function and call in ActionListener of that jsf page

Bean function code -

public void viewProperty(ActionEvent actionEvent) {
    
    FacesContext context = FacesContext.getCurrentInstance();
    
    BindingContext bindingContext = BindingContext.getCurrent();
    
    DCDataControl dc  = bindingContext.findDataControl("AppModuleDataControl"); // Name of application module in datacontrolBinding.cpx
    
    AppModuleImpl appM = (AppModuleImpl)dc.getDataProvider();
    
    ViewObject vo = appM.findViewObject("propertyInformationNew1"); //Name of ViewObject
    String brokerUsername = MyADFUtil.getFromSessionScope("brokerUsername").toString();   
    vo.setNamedWhereClauseParam("pBrokerProp", brokerUsername); //first value is parameter name and second one is value of that parameter
    vo.executeQuery();

}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.