2012-09-06 55 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

相關問題