2012-09-06 3 views
0

안녕하세요 저는 자바와 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"; 
    } 

가 정말 미안 해요 방법의 내 관리 빈 코드, 어쩌면 내가 세드릭 어쩌면 너희들이 알 것이다, 내 얼굴-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를 사용하여. . .

work 방법 코드

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

} 
+0

안녕하세요. 내 질문에 대답 해 주셔서 감사합니다 :). 하지만 checkwork에 반환 된 값이 여전히 null 인 것 같습니다. 아마도 여러분이 볼 수 있도록 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를 통해 모든 요청 PARAMS에 액세스 할 수 있습니다

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

전화가 그

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

에 대한

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

아 미안, 정말 정말 너무 확실하지 않다이 새로운 해요. 하지만 고마워. 그것을 시도 할 것이다! – user1651129