2014-03-27 2 views
1

JSP 파일 (서블릿을 사용하고 싶지는 않음)에서 작업하고 있는데, 간단한 양식, 2 개의 레이블, 2 개의 입력 및 2 버튼을 사용하여 제출 된 문자열 을 동일한 JSP 페이지에 인쇄하려고 할 때 문제는 새 값을 시도 할 때 제출 된 마지막 값이 화면에 인쇄 된 상태로 남아 있기 때문입니다.버튼이 눌러 졌는지 확인하는 방법 (JSP 파일에서)

 <body> 
     <form method='post'> 
     <pre> 
     <label>Username</label> <input type="text" name="user" required/> 
     <label>Password</label> <input type="password" name="pwd" required /> 
     <br> 
     <input type="submit" value="confirm" name ="submit" /> 
     <input type="reset" value="clear" /> 
     </pre> 
     </form> 
     <br> 
     // test if the submit button was clicked (check if value of submit is confirm) 

     <% String x=request.getParameter("submit")%> 
     <% if (x.equals("confirm")){ %> 

     <% if (request.getParameter("user")!="" && request.getParameter("pwd")!=""){ %> 
     <center> 
     <h4> user is : <% out.write(request.getParameter("user")); %> </h4> 
     <br> 
     <h4> password is : <% out.write(request.getParameter("pwd")); %> </h4> 
     </center> 
     <% } else { %> 

     <h4> inputs r empty !! </h4> 

     <% } %> 
     <% } %> 
     </body> 

내가 줄에서 오류가 발생합니다 :

 <% if (x.equals("confirm")){ %> 
우리가 디스플레이로 이동하기 전에 버튼을 클릭 한 제출이 코드를 시도

이유가 무엇입니까?

답변

0

우선 JSP 태그를 불필요하게 열고 닫지 마십시오. 그것의 지저분하고 읽을 수없는. 둘째, 세미콜론이 누락되었습니다. 셋째, 매개 변수가 null 일 가능성을 확인해야합니다. 양식이 제출되지 않으면 매개 변수가 널입니다.

이 나쁜 :

<% String x=request.getParameter("submit")%> 
<% if (x.equals("confirm")){ %> 

이처럼 수행

<% 
    String x = request.getParameter("submit"); 
    if(x!=null && x.equals("confirm")) 
    { 
    ... 

또한 문자열 비교를 반전 할 수있다. null 인 변수에 도트 연산자를 사용하면 널 포인터 예외가 발생합니다.

<% 
    String x = request.getParameter("submit"); 
    if("confirm".equals(x)) 
    { 
    ... 

당신이이 문제를 해결하면 또한, 당신은 if (request.getParameter("user")!=""에 문제로 실행됩니다 : 그래서 당신은 명시 적으로 null을 검사하지 않도록하여 문자열 리터럴에 도트 연산자를 사용하고 있습니다. Java에서 문자열 ==, !=은 문자열 내용을 비교하지만 포인터 (즉 메모리 주소)를 비교하지 않기 때문에 .equals()을 사용해야합니다.

+0

감사합니다. – user2161721

0

이 질문은 너무 오래 된 것 같지 않습니다. 그래서이 질문에 대한 답을 안전하게 추가 할 수 있습니다.

<% 
    String check_submit_form = request.getParameter("submit"); 
    if((request.getParameter("btnLogon") == null)?false:true){ 
      for(int i =0;i<=100;i++){ 
       out.println("Congrts Bro . you have done a great job ."); 
      } 
    } 
    else{ 
    %> 

    <form name="form_logon" method="POST" action ="logonHome.jsp"> 
    <input type="submit" value="Click for Finger Verification" name="btnLogon"> 
    </form> 
    <% 
    } 
    %> 

코드는 자기 설명이다 : 당신은 같은 페이지에서 제출 된 양식 데이터를 처리 할 때

은 기본적으로 다음과 같은 코드를 사용하는 택시로. 제출 버튼을 누르면 양식을 처리 할 수 ​​있습니다. 그렇지 않으면 양식으로 재 지정됩니다. 희망이 도움이됩니다.

관련 문제