springmvc传值问题
我根据spring入门中的代码,建立了一个简单的登录模块,但是,在学习展示层时候遇到了一个奇怪的问题,在开始login.jsp中,只有密码中type="password"
的值能够传给后端,用户名传的数值为null。
我的问题是:
- 为什么值传不进去?
- loginCommand是怎么取到传进去的值的?
我的配置如下:
web层,LoginController类
@RequestMapping(value = "/index.html")
public String loginPage() {
return "login";
}
@RequestMapping(value = "/loginCheck.html")
public ModelAndView loginCheck(HttpServletRequest request, LoginCommand loginCommand) {
//loginCommand只有 userName 和 password 两个属性
System.out.println("userName: " + loginCommand.getUserName());
System.out.println("password: " + loginCommand.getPassword());
boolean isValidUser = userService.hasMatcherUser(loginCommand.getUserName(),
loginCommand.getPassword());
System.out.println(isValidUser);
if (!isValidUser) {
return new ModelAndView("error", "error", "用户名或密码错误。");
} else {
User user = userService.findUserByUserName(loginCommand
.getUserName());
user.setLastIp(request.getLocalAddr());
user.setLastVisit(new Date());
userService.loginSuccess(user);
request.getSession().setAttribute("user", user);
return new ModelAndView("success");
}
}
web.xml
<!--①从类路径下加载Spring配置文件,classpath关键字特指类路径下加载-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:smart-context.xml</param-value>
</context-param>
<!--②负责启动Spring容器的监听器,它将引用①处的上下文参数获得Spring配置文件的地址-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!--Spring MVC的主控Servlet-->
<servlet>
<servlet-name>smart</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<!--③Spring MVC处理的URL-->
<servlet-mapping>
<servlet-name>smart</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
smart-servlet.xml
<!-- 扫描web包,应用Spring的注解 -->
<context:component-scan base-package="com.smart.web"/>
<!-- ①②配置视图解析器,将ModelAndView及字符串解析为具体的页面 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
</beans>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你要看一下你的页面参数名称和实体bean中字段名称是否一致,框架只是帮你解析你的http请求参数,映射到你设置的对象里了。