2017-11-06 4 views
0

표시 될 때 요청 매개 변수 값이 표시되지 않는 JSP 페이지가 있습니다. 원래 서블릿에서 매개 변수를 전달하려고했는데 작동하지 않았습니다. 테스트와 마찬가지로 HTML 페이지의 양식에서 JSP를 호출하기도했습니다.JSP 요청 매개 변수를 가져 오지 못함

나는 서블릿에서 무엇을 : 나는 JSP에 어떤 마지막으로

<div> 
    <form action="samplePage.jsp" method="post"> 
     <input name="param" type="hidden" value="sampleValue"/> 
     <input type="submit" value="Update"> 
    </form> 
</div> 

:

내가 숨겨진 필드 형태를 통해 HTML 페이지에서 JSP를 호출하는 방법

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    String sampleValue = sampleModel.getMyValue(); 
    request.setAttribute("param", sampleValue); 

    RequestDispatcher view = request.getRequestDispatcher("samplePage.jsp"); 
    view.forward(request, response); 
} 

<body> 
    <p>Some info: ${param}</p> 
</body> 

문제는 "sampleValue"라고하는 요청 속성 "param"의 값이 렌더링되지 않는다고 말했기 때문에 페이지에.

나는 이것이 어떻게 행해지는지 많은 예제를 보았으며 나의 코드는 정확하다고 생각한다. 이것이 작동하지 않는 다른 이유가 있습니까? Tomcat 8.5를 사용하여 maven 프로젝트를 실행 중입니다.

EDIT : 제가 지금까지 알아 낸 사실은 문제가 표현 언어가 작동하지 않는다는 것입니다. 요청 속성은 JSP에 도달하면 값을 갖지 않습니다.

+2

시도하십시오'param.param' https://stackoverflow.com/questions/26747831/jsp-expression-language-get-parameter – Oleg

+0

제안 주셔서 감사합니다,하지만이 작동하지 않습니다. 속성은 단순한 값이므로 $ {param}을 사용하여 액세스해야합니다. $ {param.param}은 중첩 된 속성에 사용됩니다. – PetarMI

+1

아니요, 첫 번째 매개 변수는 두 번째 매개 변수가 param이라는 이유로 요청 매개 변수에 액세스하는 것입니다. – Oleg

답변

0

귀하의 양식은 method = post입니다. 서블릿 코드는 doGet 대신 doPost 메소드에 위치해야합니다.

JSP의 경우를 들어
<%=request.getAttribute("param")%> 

samplePage.jsp에서

서블릿의 경우를 들어
+0

그래, 나도 알아,하지만 이것은 문제가되지 않습니다. 방금 JSP 페이지를 호출하는 또 다른 방법으로 양식을 사용했습니다. 게시물이나 게이를 상관없이 매개 변수가 표시되지 않습니다. – PetarMI

+0

그렇다면 어쩌면 표현 언어가 어떤 이유로 작동하지 않을 수도 있습니다. JSP에서 구식 <% = request.getAttribute ("param") %>로 $ {param}을 대체하십시오. –

+0

예 그 scriplet도 시도했지만 지금은 결과로 null을주었습니다. 방법으로 제안을 주셔서 감사합니다 – PetarMI

0

, 대체 $ {PARAM},

으로 samplePage.jsp$ {PARAM} 교체
<%=request.getParameter("param")%> 
0

먼저 변수 sampleValue가 전달중인 문자열을 캡처하고 있는지 확인하십시오. 다음과 같은 JSP에서

문자열 sampleValue = sampleModel.getMyValue();

System.out.println (sampleValue);

0

jsp 페이지 상단에있는 jsp page.use 벨로우즈 태그에서 isIllored가 거짓인지 확인하십시오.

<%@ page isELIgnored="false" %>

또한 당신은 ${2 * 4} 출력으로 JSP에 8로 인쇄가이를 보장 할 수 있습니다.