2012-09-06 36 views
0

嗨,我是新来的java和jsp。我无法从jsp中获得我的价值。如何放置一个request.getParameter(“”)并将其放入一个bean.method()?

这是我的代码。 这些是用jsp制作的。

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

这是方法

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"; 
    } 

我很抱歉,我的托管bean的代码,也许我加上我的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> 

回答

1

<f:param

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

public String checkwork() { 
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); 
    Map<String,String> requestParams = ec.getRequestParameterMap(); 
    final String id = requestParams.get("id"); 
    ... 

呼叫。 。 。

work方法的代码

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

} 
+0

嗨。谢谢你回答我的问题 :)。但它似乎返回到checkwork的值仍然为空..也许我添加我的faces.config文件供大家看。 – user1651129

+0

不需要,你确定你在'id'中有价值吗? – Daniel

+0

Ahhhh ...我现在能够获得我的信息。但url从 http:// localhost:8084/portal/faces/chicken.jsp?image_id = 2 到 http:// localhost:8084/portal/faces/chicken.jsp 是否有无论如何使链接保持不变? – user1651129

1

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

当您调用某个操作时,无需使用请求数据对其进行参数化。相反,你可以通过FacesContext访问所有请求参数:它使用

<h:commandButton action="#{bean1.checkwork}" value="Get info" /> 
+0

哦很抱歉,我是新来这个,所以我真的不很确定。但是谢谢。会尝试一下! – user1651129

相关问题