2013-09-23 2 views
1

Struts 2 textfield 태그가 있습니다. 사용자가 값을 입력하고 조치를 보내기 만하면됩니다.Struts 2 텍스트 필드는 값 속성 없이도 값을 표시합니다.

<s:textfield name="user.firstAnswer" size="110" cssClass="FormObjectCompulsary" autocomplete="off" /> 

이 페이지가로드 사용자 개체가 첫 번째 대답에 대한 값을 포함하는 경우에도, 내가 텍스트 필드에 표시하지 않으려는 대신 나는 텍스트 필드가 비어되고 싶어요.

하지만 사용자 개체의 값이이 필드에 표시되는 값 특성을 지정하지 않아도됩니다.

+1

표시되는 값은 무엇입니까? 이전에 입력 한 값 또는 무엇인가 – muthu

답변

1

새 개체 user을 추가하는 경우 JSP에 표시하기 전에 new 연산자로이 개체를 만들어야합니다. 표시되지 않는 null 참조가 포함됩니다. value 속성을 지정하지 않으면 name이 값을 표시하는 데 사용됩니다.

0

execute() 안에 사용자 개체가 null이되도록하십시오. 그래서 다시 텍스트 상자 안에 값을 표시하지 않습니다.

예 : user = null;

코드 조각을 보여 주므로 도움이 될 수 있습니다. execute()을 참조하십시오. 난 당신이 액션 클래스에 ModelDriven <>를 구현하는 것을 생각하고 name="user.firstAnswer"보고

package online.solution; 

import com.opensymphony.xwork2.Action; 

public class MyAction implements Action { 

    UserBean user = new UserBean(); 

    public UserBean getUser() { 
     return user; 
    } 

    public void setUser(UserBean user) { 
     this.user = user; 
    } 

    @SuppressWarnings("finally") 
    @Override 
    public String execute() throws Exception { 
     String result = ""; 
     try { 
      user.setGuest("Bye bye"); 
      System.out.println(user.getUsername() + " " + user.getPassword()); 

      if (user.getUsername().equals(user.getPassword())) { 
       result = SUCCESS; 
      } 
      else { 
       result = ERROR; 
      } 
      user = null; //Make it null when all task completed. 
     } 
     catch (Exception exception) { 
      System.out.println("Exception -> " + exception); 
     } 
     finally { 
      return result; 
     } 
    } 

    @Override 
    protected void finalize() throws Throwable { 
     super.finalize(); 
    } 
} 
0

. 무슨 일이 일어날 수 있습니다 당신이 행동 클래스에서 성공을 반환하고 JSP 페이지에 와서 행동에 당신의 사용자 모델이 그것에 어떤 가치가 있다면 .. 모델 주도 JSP 페이지에서 당신을 위해 그 필드를 설정합니다.

저는이 방법을 사용하여 struts2를 학습하면서 양식 기능을 업데이트했습니다. 반환하기 전에 사용자 개체에 아무것도 포함되어 있지 않은지 확인하십시오.