在Seam中按特定的Cloumn名称搜索

开发者

我正在用jsf1.2缝。

除了搜索操作,一切对我来说都很好。谁能建议我以正确的方式前进?

在这里,我的状态如何:

            <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);

    }

实现该接口的动作类:

    @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

        }
    }

控制台说,名字为:null。

我尝试了更多次,但是对此失去了主意。请给我建议。

十亿

为什么要firstNameuserListAction-component中注入这应该从哪里来?如果仅此而已,我想它的工作原理如下:

  1. 用户输入名字并单击命令按钮
  2. 提交表单,并使用设置方法将输入的名字设置到模型中
  3. 当执行命令按钮动作时,Seam-bijection发生并注入firstName存储在“某些”上下文中的值。由于未在任何地方定义,null因此将注入。

因此,如果需要注入(无论哪种情况),都应该在比赛中的任何位置放置正确的值。如果没有,只需删除@In注释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章