如何保存request.getAttribute值?

时间:2014-05-02 12:23:24

标签: java jsp spring-mvc

您好我试图在一个页面中输入值到另一个页面,它正常工作并显示值但是当我尝试保存该值时它在控制台显示我为null,actullay我的要求在第一页我必须在一个字段中输入Mobilenumber并按下接下来然后我必须将其重定向到另一个页面,其中包含一些其他字段,如名字和姓氏,我有一个手机号码字段,我必须得到以前输入的手机号码页面作为禁用字段,我成功获得价值并显示。

我在控制器中试过这个

@RequestMapping(value= "/firstpage")
    public ModelAndView Validate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String mobile_No = request.getParameter("mobileNo");
        ModelAndView modelAndView=new ModelAndView();
        request.setAttribute("mobile_No", mobile_No);
        modelAndView.setViewName("secondpage");
        return modelAndView;
    }

这是验证输入值的第二页方法

@RequestMapping(value= "/register")
    public ModelAndView newAccount(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        String first_Name = request.getParameter("firstName");
        String last_Name = request.getParameter("lastName");
        String mobile_No = request.getParameter("mobile_No");

                ModelAndView modelAndView = new ModelAndView();
                modelAndView.addObject("first_Name",first_Name);
        modelAndView.addObject("last_Name",last_Name);
        modelAndView.addObject("mobile_No",mobile_No);

         modelAndView.setViewName("success");
             return modelAndView;
         }

这是我的第一页,我只输入手机号码

<form name="registration_form" id="registration_form" action="${pageContext.request.contextPath}/firstpage" method="post" >

            <label for="mobileNo" class="control-label"><b>Mobile Number:</b><span class="f_req">*</span></label>
               <div class="controls">
                 <input type="text" size="60" id="mobileNo" name="mobileNo" class="span8"
                autocomplete="off">
               </div>

    </form> 

这是我的jsp页面,我正在显示手机号码

<form name="registration_form" id="registration_form" action="${pageContext.request.contextPath}/register" method="post">

                    <label for="mobileNo" class="control-label"><b>Mobile Number:</b><span class="f_req">*</span></label>
                       <div class="controls">
                         <input type="text" size="60" id="mobile_no" name="mobile_no" class="span8"
                         autocomplete="off" value="<%=request.getAttribute("mobile_No")%>" disabled="disabled">
                       </div>


                    <label for="firstName" class="control-label"><b>First Name:</b><span class="f_req">*</span></label>
                       <div class="controls">
                          <input type="text" size="60" id="firstName" name="firstName" class="span8"
                        value="${first_Name}" autocomplete="off">
                       </div>


                    <label for="lastName" class="control-label"><b>Last Name:</b><span class="f_req">*</span></label>
                       <div class="controls">
                          <input type="text" size="60" id="lastName" name="lastName" class="span8"
                        value="${last_Name}">
                       </div>
    </form>

请帮助我,我无法找出我的错误。谢谢。

3 个答案:

答案 0 :(得分:1)

问题出在第二页中手机号码字段的输入标记中的disabled="disabled"属性中。您无法发送已禁用的字段的值。

即使你尝试它也会被发送为空值。因此,请尝试将disabled="disabled"更改为readonly="readonly"。它可以解决你的问题。

答案 1 :(得分:0)

在第一页中你做request.setAttribute;放入attibute并输入名称和ID为 mobile_no 的文本 在第二页中,您执行:request.getPatameter("mobile_No")

这是错的......你应该做request.getPatameter("mobile_no")(请不是n而不是N)

我希望这会有所帮助 安吉洛

答案 2 :(得分:0)

在您尝试检索值的第二页中,我认为

    String mobile_No = request.getParameter("mobile_No");

应该是

    String mobile_No = request.getAttribute("mobile_No");