springmvc(2)
2016-04-06 21:42
447 查看
在web.xml中启动自定义的springmvc框架:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在springmvc.xml中配置视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass“
value="org.springframework.web.servlet.view.JstlView">
</property>
<property name="prefix" value="/"></property>
加前缀
<property name="suffix" value=".jsp"></property> 加后缀
</bean>
开启springmvc注解
<mvc:annotation-driven />
开启自动扫描
<context:component-scan base-package="com.lovo.mvc">
<!-- 制定扫描规则,要求springmvc上下文内部,只包含WEB层的Bean组件 -->
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
映射处理器可以不用配置会默认使用BeanNameUrlHandlerMapping组件
java类的方法
@Controller
public class ToLoginController {
@RequestMapping("/toLogin")
//@RequestMapping告知该方法是针对/toLogin请求的处理方法
public String jump(){
return "login";
//返回的字符串被当做ViewName
}
}
@Controller
@RequestMapping("/test")
public class ToLoginController {
@RequestMapping("/toLogin")
public String jump(){
return "login";
}
}
此时代表请求该方法的路径是:/test/toLogin.jsp
请求处理方法可以接受的参数:
1、HttpServletRequest,HttpServletResponse,HttpSession
2、表单提交数据,若表单数据的name值和参数名一样,可以直接书写,若不一样需要映射:
public String login(
@RequestParam("username")String name,
@RequestParam("password")String pwd){
System.out.println(name)
return null;
}
3、表单数据封装的bean对象,条件是bean对象的属性名和提交的name属性一模一样:
public String login(UserBean user){
System.out.println(user.getUsername());
return null;
}
4、map对象,放入到map中的数据可以同步到request作用域,可以在返回的视图页面中用EL表达式取得,和request放入值一样,页面可以通过EL表达式获取值:
public String login(Map map){
map.put("msg", "good job");
return "success";
}
5、PrintWriter作为参数,一般情况下返回值为空,因为print方法就已经返回了数据了,不能再次返回:
public void login(PrintWriter out){
out.print("hellow world");
}
请求处理方法可以返回的值:
1、void作为返回类型,一般用在out直接输出
2、String作为返回类型,如果返回非空字符串,则使用返回值作为viewName;如果返回空,则根据默认规则返回默认页面(规则如void)。如果要进行重定向或者请求转发,并且跳转的可能是另外一个控制器,那么返回如下字符串来实现:
return "forward:/****.spring" – 请求转发
return "redirect:/*****.spring" – 重定向
需要注意的是请求转发和重定向的地址前都需要"/"符号
3、Map作为返回类型:
public Map login(){
Map map = new HashMap();
map.put("msg", "good job");
return map;
}
根据默认规则返回默认页面(规则如void)。可以在页面上用EL表达式显示数据(${msg})。
4、ModeAndView作为返回类型:
public ModelAndView login(UserBean user){
ModelAndView mav = new ModelAndView();
if(us.checkLogin(user)){
mav.setViewName("success");
mav.addObject("GirlName", "FRJJ");
}else{
mav.setViewName("login");
}
return mav;
}
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在springmvc.xml中配置视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass“
value="org.springframework.web.servlet.view.JstlView">
</property>
<property name="prefix" value="/"></property>
加前缀
<property name="suffix" value=".jsp"></property> 加后缀
</bean>
开启springmvc注解
<mvc:annotation-driven />
开启自动扫描
<context:component-scan base-package="com.lovo.mvc">
<!-- 制定扫描规则,要求springmvc上下文内部,只包含WEB层的Bean组件 -->
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
映射处理器可以不用配置会默认使用BeanNameUrlHandlerMapping组件
java类的方法
@Controller
public class ToLoginController {
@RequestMapping("/toLogin")
//@RequestMapping告知该方法是针对/toLogin请求的处理方法
public String jump(){
return "login";
//返回的字符串被当做ViewName
}
}
@Controller
@RequestMapping("/test")
public class ToLoginController {
@RequestMapping("/toLogin")
public String jump(){
return "login";
}
}
此时代表请求该方法的路径是:/test/toLogin.jsp
请求处理方法可以接受的参数:
1、HttpServletRequest,HttpServletResponse,HttpSession
2、表单提交数据,若表单数据的name值和参数名一样,可以直接书写,若不一样需要映射:
public String login(
@RequestParam("username")String name,
@RequestParam("password")String pwd){
System.out.println(name)
return null;
}
3、表单数据封装的bean对象,条件是bean对象的属性名和提交的name属性一模一样:
public String login(UserBean user){
System.out.println(user.getUsername());
return null;
}
4、map对象,放入到map中的数据可以同步到request作用域,可以在返回的视图页面中用EL表达式取得,和request放入值一样,页面可以通过EL表达式获取值:
public String login(Map map){
map.put("msg", "good job");
return "success";
}
5、PrintWriter作为参数,一般情况下返回值为空,因为print方法就已经返回了数据了,不能再次返回:
public void login(PrintWriter out){
out.print("hellow world");
}
请求处理方法可以返回的值:
1、void作为返回类型,一般用在out直接输出
2、String作为返回类型,如果返回非空字符串,则使用返回值作为viewName;如果返回空,则根据默认规则返回默认页面(规则如void)。如果要进行重定向或者请求转发,并且跳转的可能是另外一个控制器,那么返回如下字符串来实现:
return "forward:/****.spring" – 请求转发
return "redirect:/*****.spring" – 重定向
需要注意的是请求转发和重定向的地址前都需要"/"符号
3、Map作为返回类型:
public Map login(){
Map map = new HashMap();
map.put("msg", "good job");
return map;
}
根据默认规则返回默认页面(规则如void)。可以在页面上用EL表达式显示数据(${msg})。
4、ModeAndView作为返回类型:
public ModelAndView login(UserBean user){
ModelAndView mav = new ModelAndView();
if(us.checkLogin(user)){
mav.setViewName("success");
mav.addObject("GirlName", "FRJJ");
}else{
mav.setViewName("login");
}
return mav;
}
相关文章推荐
- Java学习·模板方法模式
- java中的基本数据类型
- java 大数
- [置顶] JavaSE学习笔记_14:Java-Runtime类
- eclipse远程连接hadoop单机模式出现的问题
- java(20)--单例模式总结
- Java String.split()用法小结
- Struts2 action中不要将方法以get开头!!!
- [置顶] JavaSE学习笔记_16:Java-Calendar类
- Java的【向上转型】和【向下转型】
- Java大数简单题---Yet another A + B
- java继承时初始化的执行顺序
- opengl es2.0 eclipse+adt+android sdk+ndk 试过jni都没问题。报错原因求解决????
- 第一天学习java
- JAVA日志框架分类简介
- [置顶] JavaSE学习笔记_15:Java-Date类
- [置顶] JavaSE学习笔记_17:Java-Math&Random类
- 为什么用Java(转载知乎)
- Spring AOP总结
- java参数传递。传递值还是引用问题