如何放置request.getParameter(“”)并将其放入bean.method()?

时间:2012-09-06 07:29:56

标签: jsf variables request managed-bean getparameter

嗨,我是java和jsp的新手。我无法从jsp获得我的价值。

这是我的代码。 这些是在jsp中制作的。

<h:commandButton action="#{bean1.checkwork}" value="Get Info" type="submit">
   <f:param name="id" value="#{param['image_id']}" /f:param>
</h:commandButton>

这是方法

的托管bean代码
public String checkwork(){

    HttpServletRequest request = (HttpServletRequest)FacesContext.
        getCurrentInstance().getExternalContext().getRequest();
    String image_ID = null;
    if(request!=null){

        image_ID = request.getParameter("image_id");

        images(image_ID);
        student(matric);

    } else {
        System.out.println("fail");                    
        return "successful";
    }

我很抱歉,也许我添加了我的faces-config.xml数据,也许你们会知道发生了什么。因为我添加了你给出的代码,它给了我空值。 在faces-config.xml

<navigation-rule>
    <from-view-id>/MainPage.jsp</from-view-id>
    <navigation-case>
        <from-action>#{bean1.checkwork}</from-action>
        <from-outcome>successful</from-outcome>
        <to-view-id>chicken.jsp?image_id=#{param['image_id']}</to-view-id>
    </navigation-case>
</navigation-rule>

2 个答案:

答案 0 :(得分:2)

你为<f:param

<h:commandButton action="#{bean1.work}" value="Get Info" type="submit">
    <f:param name="id" value="#{param['id']}"></f:param>
</h:commandButton>

。 。

work方法代码

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String id= null;
if(request!=null){
    id= request.getParameter("id");

}

答案 1 :(得分:1)

我想你正在使用JSF。如果是这样,请将JSF标记添加到您的问题中。如果没有,你可以忽略我的答案。

调用操作时,无需使用请求数据对其进行参数化。相反,您可以通过FacesContext

访问所有请求参数
public String checkwork() {
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
    Map<String,String> requestParams = ec.getRequestParameterMap();
    final String id = requestParams.get("id");
    ...

使用

调用它
<h:commandButton action="#{bean1.checkwork}" value="Get info" />