当前位置: 首页 > 知识库问答 >
问题:

一个controller方法中的model属性集的属性在另一个controller方法中不可用

帅银龙
2023-03-14

下面包含我的controller类中的代码,我使用方法public String getRegistrationForm(Map model)返回一个带有spring表单的jsp-page,在这个方法中,我设置了UserTab.SetisMfAEnabled(new Boolean(true)),在提交表单时调用方法:public String registerUser(@modelAttribute(“user”)UserTab user,BindingResult results,Map model)作为处理程序方法,但是在这个方法中,前面方法中设置的user属性的属性'is MfAEnabled'为null,行:system.out.println(“user.getisMfAEnabled()为nul”);正在打印日志。请告诉我这里出了什么问题。

@Controller
@RequestMapping("/register")
public class RegisterUserController {   
    @Autowired
    RegisterUserService registerUserService;

    @RequestMapping(value = "/registeruser.action" , method =     RequestMethod.POST)
    public String registerUser(@ModelAttribute("user") UserTab user , BindingResult results , Map<String,Object> model){
        System.out.println("executing regsiterUser ");
        if(user == null)
           System.out.println(", user is null");
        if(results == null)
           System.out.println("results is null");

        UserTabValiator userTabValidator = new UserTabValiator();
        if(user.getIsMfaEnabled() == null)
            System.out.println("user.getIsMfaEnabled() is nul");
        userTabValidator.validate(user, results);
        if(results.hasErrors()){
           return "registeruser";
        }
        try {
            boolean val = registerUserService.isExistingUsername(user.getLoginName());
            if(val){
                System.out.println("username already exists");
                model.put("message", "username already exists");
                return "registeruser";
            }
           if(!val){
               model.put("username", user.getLoginName());
               model.put("message", "registration success ... ");
               return "registrationsuccess";
           }            
        } catch (Exception e) {
            System.out.println("exception thrown");
            e.printStackTrace();
            return "errorpage";
        }
       return "errorpage";
 }


   @RequestMapping(value="/registeruser.view", method=RequestMethod.GET)
   public String getRegistrationForm(Map<String,Object> model){
       System.out.println("executing getRegistrationForm");
       if(registerUserService == null)
       System.out.println("register user service is null");
       try{
         ArrayList<MfaQuestion> allMfaQuestions = (ArrayList<MfaQuestion>) registerUserService.getAllMfaQuestions();
        UserTab userTab =  new UserTab();
        userTab.setIsMfaEnabled(true);
        model.put("user", userTab);
        model.put("message", "register new user");
        model.put("allMfaQuestions", allMfaQuestions);
        return "registeruser";
       }
       catch(Exception e){
           e.printStackTrace();
           model.put("user", new UserTab());            
           model.put("message", "unable to get MFA questions");
           return "registeruser";
       }
    }   
}

UserTab模型类:包com.persistance.beans;

        import java.util.Date;

        public class UserTab {

            private Integer userTabID;
            private String loginName;
            private String password;
            private Date created;
            private Date lastUpdated;
            private Date lastLoginAttempt;
            private Boolean isAccountLocked;
            private Integer loginFailsNumber;
            private Boolean isMfaEnabled;
            private UserMfaMap userMfaMap;

            public String toString(){
                String str ="";
                System.out.println("[userTabID , loginName ,  password");
                return str;

            }

            public UserMfaMap getUserMfaMap() {
                return userMfaMap;
            }

            public void setUserMfaMap(UserMfaMap userMfaMap) {
                this.userMfaMap = userMfaMap;
            }

            public UserTab() {
                super();
            }


            public String getLoginName() {
                return loginName;
            }
            public void setLoginName(String loginName) {
                this.loginName = loginName;
            }
            public String getPassword() {
                return password;
            }
            public void setPassword(String password) {
                this.password = password;
            }
            public Date getCreated() {
                return created;
            }
            public void setCreated(Date created) {
                this.created = created;
            }


            public Date getLastUpdated() {
                return this.lastUpdated;
            }
            public void setLastUpdated(Date lastUpdated) {
                this.lastUpdated = lastUpdated;
            }
            public Date getLastLoginAttempt() {
                return lastLoginAttempt;
            }
            public void setLastLoginAttempt(Date lastLoginAttempt) {
                this.lastLoginAttempt = lastLoginAttempt;
            }
            public Boolean getIsAccountLocked() {
                return isAccountLocked;
            }
            public void setIsAccountLocked(Boolean isAccountLocked) {
                this.isAccountLocked = isAccountLocked;
            }
            public Integer getLoginFailsNumber() {
                return loginFailsNumber;
            }
            public void setLoginFailsNumber(Integer loginFailsNumber) {
                this.loginFailsNumber = loginFailsNumber;
            }
            public Boolean getIsMfaEnabled() {
                return isMfaEnabled;
            }
            public void setIsMfaEnabled(Boolean isMfaEnabled) {
                this.isMfaEnabled = isMfaEnabled;
            }

            public Integer getUserTabID() {
                return userTabID;
            }

            public void setUserTabID(Integer userTabID) {
                this.userTabID = userTabID;
            }

        }

RegisterUser JSP页面:

            <form:form method="POST" action="${pageContext.request.contextPath}/register/registeruser.action" commandName ="user">
           <table>
            <tr>
                <td><form:label path="loginName">UserName</form:label></td>
                <td><form:input path="loginName" /></td>
                <form:errors path="loginName" cssClass="error"/>
            </tr>
            <tr>
                <td><form:label path="password">Password</form:label></td>
                <td><form:input path="password" /></td>
                <form:errors path="password" cssClass="error"/>
            </tr>

            <div id="question1" class="questionblock">
            <tr>
                <form:select path="userMfaMap.question1" > 
                <c:forEach items="${allMfaQuestions}" var="mfaQuestion">
                    <form:option  value="${mfaQuestion.mfaQuestionId}">
                      <c:out value="${mfaQuestion.mfaQuestion}" />        
                   </form:option>                     
                </c:forEach>
                </form:select>
              </tr>
              <tr>
                <td><form:label path="userMfaMap.answer1">Answer:</form:label></td>
                <td><form:input path="userMfaMap.answer1" /></td>
                <form:errors path="userMfaMap.answer1" cssClass="error"/>
            </tr>
            </div>
            <div id="question2" class="questionblock">   
            <tr>
                <form:select path="userMfaMap.question2">
                <c:forEach items="${allMfaQuestions}" var="mfaQuestion">
                    <form:option  value="${mfaQuestion.mfaQuestionId}">
                      <c:out value="${mfaQuestion.mfaQuestion}" />        
                   </form:option>                     
                </c:forEach>
                </form:select>
            </tr>
            <tr>
                <td><form:label path="userMfaMap.answer2">Answer:</form:label></td>
                <td><form:input path="userMfaMap.answer2" /></td>
                <form:errors path="userMfaMap.answer2" cssClass="error"/>
            </tr>
            </div>
            <div id="question3" class="questionblock">
            <tr>
               <form:select path="userMfaMap.question3">
                <c:forEach items="${allMfaQuestions}" var="mfaQuestion">
                    <form:option  value="${mfaQuestion.mfaQuestionId}">
                      <c:out value="${mfaQuestion.mfaQuestion}" />        
                   </form:option>                     
                </c:forEach>
                </form:select>
            </tr>
            <tr>
                <td><form:label path="userMfaMap.answer3">Answer:</form:label></td>
                <td><form:input path="userMfaMap.answer3" /></td>
                <form:errors path="userMfaMap.answer3" cssClass="error"/>
            </tr>
            </div>

            <tr>
                  <td><input type="submit" name="submit" value="Submit"></td>
            </tr>
        </table>  
        </form:form>

共有1个答案

郎河
2023-03-14

在JSP表单中添加代码以绑定isMfaEnabled的值

 <form:input path="isMfaEnabled" />
 类似资料:
  • 因此,我的基本内容是:、和。(我有一些其他类来建立Arduino连接) 这是我在中的start方法: 编辑:以下是我的操作。java: 我什么都试过了,但没有成功...如果有人能帮我,我会非常感激的。

  • 我希望避免文件中杂乱的东西,而在我看来,放在单独的文件中会更好。 应该类似于 这有可能吗?如果不是,什么是避免杂乱的明智方法呢?

  • 以下是文件: 我试图了解的是,如果设置了环境变量(并且不是空的),那么属性应该是,否则。 上面的代码不起作用(设置的代码行),我还尝试了#{}和${}的不同组合,包括包装,但到目前为止还没有成功。 正确的做法是什么?谢了。

  • 谁能帮帮我吗。我有一个物品清单——在我的例子中有啤酒厂。每个酿酒厂都有一些属性(字段),如姓名、地址、id、省份(所在州)等。。。一家酿酒厂(名称)可以位于多个省份。现在我需要解决的问题是:如何计算每个州的啤酒厂数量?所以,按省份分组。所有数据都是从csv文件读取的。我已经创建了返回啤酒厂列表的阅读器。当我尝试这个: 这将返回我键(省)和整个对象作为值。 我已经坐了几个小时了。我没有主意了。

  • 问题内容: 在Bruce Eckel的“ Thinking In Java,第四版”的第428页(有关类型信息的章节)中,具有以下示例: 也许我有点累,但是我看不到add()方法中对add()的调用是如何工作的。我一直认为它应该有一个引用,或者是一个静态方法(并且我在ArrayList或List中找不到静态add())。我想念什么? 我只是为自己测试,发现这可行: 问题答案: Java为这样的方法

  • 本文向大家介绍JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法,包括了JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法的使用技巧和注意事项,需要的朋友参考一下 JavaScript hasOwnProperty() 方法是 Object 的原型方法(也称实例方法),它定义在 Object.prototype 对象之上,所有 Objec