2013-10-04 3 views
0

jsf1.2로 이음새에서 작업하고 있습니다.Seam의 특정 cloumn 이름으로 검색

검색 작업을 제외한 모든 기능이 저에게 잘 작동합니다. 누구든지 올바른 방법으로 나에게 제안 해 줄 수 있습니까?

  <h:form class="input-list" id="searchUser" style="width:100%;" 
      name="searchUser"> 
        <div class="edit-label">FIRST NAME :</div> 
       <h:inputText tabindex="1" id="firstName" type="text" class="miniusername clp" 
       value="#{userListAction.firstName}" required="true"> 
       <f:validateLength minimum="3" maximum="20" /> 
      </h:inputText> 

      <h:commandButton value="Search" tabindex="2" style="margin-left: 5px" 
       action="#{userListAction.retrieveName}" class="usersearch"> 
      </h:commandButton> 
     </h:form> 

내 인터페이스 :

@Local 
    public interface UserListAction extends Serializable { 

     public List<User> retrieveCustomers(); 

     public List<User> retrieveEmployees(); 

     public List<User> getUsersList(); 

     public CLRPUser getLoginUser(); 

     public List<User> retrieveName(); 

     @WebRemote 
     public String deleteById(Integer userId); 

     @WebRemote 
     public CLRPUser getUserById(Integer userId); 

     public UserTypeEnum getUserType(); 

     public void setUserType(UserTypeEnum userType); 

     public void setFirstName(String firstName); 

     public String getFirstName(); 

     public CLRPUser getCurrentUser(); 

     public void setCurrentUser(CLRPUser currentUser); 

    } 

Action 클래스 인터페이스를 구현합니다

@Name("userListAction") 
    @Stateless 
    @AutoCreate 
    public class UserListActionImpl implements UserListAction { 

     @In 
     protected UserService userService; 

     @Out(value = "userType", scope = ScopeType.CONVERSATION, required = false) 
     private UserTypeEnum userType; 

     @In 
     private LoggedInUser loggedInUser; 

     @Out(value = "currentUser", scope = ScopeType.CONVERSATION, required = false) 
     @In(value = "currentUser", scope = ScopeType.CONVERSATION, required = false) 
     private CLRPUser currentUser; 

     @In(value = "firstName", scope = ScopeType.CONVERSATION, required = false) 
     private String firstName; 

     /** 
     * 
     */ 

     private static final long serialVersionUID = 8649412602585430272L; 

     /* 
     * (non-Javadoc) 
     * 
     * @see com.ermms.clrp.user.UserAction#getUsersList() 
     */ 


     public List<User> retrieveName() { 
      System.out.print("FirstName is :" + firstName); 
      return userService.getAllUsers(firstName); 
     } 


     public UserTypeEnum getUserType() { 
      return this.userType; 
     } 

     public void setUserType(UserTypeEnum userType) { 
      this.userType = userType; 
     } 

     public void setFirstName(String firstName) { 
      this.firstName = firstName; 
     } 

     public String getFirstName() { 
      return firstName; 
     } 

     @Override 
     public CLRPUser getCurrentUser() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public void setCurrentUser(CLRPUser currentUser) { 
      // TODO Auto-generated method stub 

     } 
    } 

콘솔 말한다는 첫 번째 이름은 내 양식을 데 방법은 다음과

, : 없는.

나는 더 많은 시간을 보냈지 만, 내 마음을 잃었습니다. 제발 제안 해주세요.

답변

2

firstNameuserListAction 구성 요소에 주입합니까? 이것이 어디에서 왔는가? 아무것도 더있을 경우 , 나는 다음과 같이 작동 같아요

  1. 사용자 이름을 입력하고 명령 버튼을 클릭
  2. 형태는 setter-를 사용하여 모델에 제출됩니다 및 입력 된 이름이 설정됩니다 메서드
  3. 명령 단추 작업을 실행하면 Seam-bijection이 발생하고 "some"컨텍스트에 저장된 firstName의 값이 주입됩니다. 어디에도 정의되어 있지 않으므로 null이 주입됩니다.

그래서 주사가 필요한 경우 (어떤 경우 든) 대회의 정확한 값을 어느 곳에 나 두어야합니다. 그렇지 않은 경우 @In 특수 효과를 삭제하면됩니다.

+0

MrD가 말하고자하는 것은 모든 필드를 양식에 삽입 할 필요가 없다는 것입니다. 양식을 제출할 때 inputtext 값은 UseListAction bean의 firstName 특성에 연결됩니다. – Esteve

+0

와우 ... 좋아. 그것은 매력처럼 작동합니다. MrD와 Esteve에게 감사드립니다. 제 지연에 대해 사과드립니다. 다른 프로젝트와 관련이 있습니다. Mrs. MrD. – DevGo