Java 伪静态 Mapping
1. 概念
伪静态,简单来说是指转换url地址,在这里用来替换掉urlMapping。因为urlMapping需要为每一个页面都进行配置,非常麻烦。
2. RequestMapping
3. Spring 注解
3.1. 概念
注解后,可动态操作成员。
3.2. 条件
注解声明、使用注解的元素、操作使用注解元素的代码。
3.3. 注解配置
3.3.1. 打开spring-servlet.xml
3.3.1. 处理urlMapping
在spring-servlet.xml里面:
注释或删除urlMapping。
3.3.2. 添加扫描
3.3.2.1. 添加
在spring-servlet.xml里面,添加
<context:component-scan base-package=“com.myweb”></context:component-scan>
3.3.2.2. 报错
Open quote is expected for attribute "base-package" associated with an element type "context:componet-scan"
3.3.2.3. 分析
问题也就是出在"base-package"上面,expected for ,就是说,上面给的无效的。仔细一看,引号有问题,是中文的。
3.3.2.4. 解决
“com.myweb”应该为英文的"com.myweb"
3.3.2.5. 又报错
The prifix "context" for element "context:component-scan" is not bound.
3.3.2.6. 分析
意思好像是 "context"没有引用进来。果然是。
3.3.2.7. 解决
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd"> <context:component-scan base-package="com.myweb"></context:component-scan> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean> <bean id="IndexAction" class="com.myweb.IndexAction">
<property name="view">
<value>index</value>
</property>
</bean> </beans>
新的spring-servlet.xml
指的是要扫描指定包下的文件,如有标记则表示该文件为控制器。
3.3.3. 配置控制器标记
3.3.3.1. 生成新的控制器文件
在包com.myweb(控制器包)下面,生成新文件NewsAction.java。
在jsp下面生成对应的News.jsp,并把index.jsp里面的内容拷进来稍微改动下。
3.3.3.2. 注解控制器
需要两步
3.3.3.2.1. @Controller
package com.myweb; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
public class NewsAction { }
只需要添加@Contoller,即告诉Spring,该类为控制器。控制器不用再实现Controller接口。
3.3.3.2.2. @RequestMapping
@RequestMapping("/newsshow")
public ModelAndView ShowNews(){
ModelAndView mv = new ModelAndView("news");
return mv;
}
newsshow,代表网页访问符。
news,代表news.jsp
3.3.3.4. 使用控制器
上面的例子对应这么输入:http://localhost:8080/newsshow.do
4. 去掉url中的 .do等后缀
4.1. 打开工程中的web.xml
4.2. 修改servlet-mapping
这里指定servlet。
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
把<url-pattern></url-pattern>中的.do 改为 /,表示从根目录开始,都用名为spring的servlet处理。
4.2. 修改filter-mapping
这是字符集处理。
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
同样处理,把<url-pattern></url-pattern>中的.do 改为 /。
5. 使用路径参数
@RequestMapping("/news/{id}/")
public ModelAndView ShowNewsCatalog(@PathVariable String id){
ModelAndView mv = new ModelAndView("news");
return mv;
}
注意,红颜色标准的参数名必须相同。
Java 伪静态 Mapping的更多相关文章
- java 伪静态的方法
1.jar包支持urlrewritefilter-4.0.3.jar http://files.cnblogs.com/simpledev/urlrewritefilter-4.0.3.rar 2. ...
- Mysql Java type mapping
MySQL Type Java Type ---------- --------- CHAR String VARCHAR String LONGVARCHAR String NUMERIC java ...
- Java资源大全中文版(Awesome最新版)
Awesome系列的Java资源整理.awesome-java 就是akullpp发起维护的Java资源列表,内容包括:构建工具.数据库.框架.模板.安全.代码分析.日志.第三方库.书籍.Java 站 ...
- Java开源GIS系统
uDig 基于Eclipse RCP的uDig开源项目既是一个GeoSpatial应用程序也是一个平台开发者可通过这个平台来创建新的在uDig基础上衍生的应用程序,uDig是Web地理信息系统的一 ...
- ElasticSearch6.5.0 【Java客户端之REST Client】
说明 High Level Client 是基于 Low Level Client 的.官方文档如下: * https://www.elastic.co/guide/en/elasticsearch/ ...
- MQ java 基础编程(一)
本文转自:http://www.blogjava.net/i369/articles/88035.html 编写人:邬文俊 编写时间 : 2006-2-16 联系邮件 : wenjunwu430@gm ...
- MQ java 基础编程
MQ java 基础编程 编写人:邬文俊 编写时间 : 2006-2-16 联系邮件 : wenjunwu430@gmail.com 前言 通过 2 个多星期对 MQ 学习,在 partner 丁 & ...
- Awesome Java: Github上关于Java相关的工具
Awesome Java 这是Github上关于Java相关的工具,框架等等资源集合. 原文参考: https://github.com/akullpp/awesome-java. @pdai 最全的 ...
- mapstruct解放Java对象转换
摘要 当前web后端开发,都是使用多层工程结构,需要在VO,BO,DTO,DO等各种数据结构中相互转换.这些转换代码都是些比较简单的字段映射,类型转换,重复性工作比较高,可以使用一些工具解放我们的双手 ...
随机推荐
- (转)个例子让你了解Java反射机制
个例子让你了解Java反射机制 原文地址:http://blog.csdn.net/ljphhj/article/details/12858767 JAVA反射机制: 通俗地说,反射机制就是可 ...
- hrbust 1721 A + B = 0 map的应用
13级春季校赛的热身题,但优化后我的代码也超时了,后来看了看学长的解法,觉得最简单的还是map,再一次感受到了map的强大. 题目描述如下 Description There is an intege ...
- 认识ExtJS(05)--
ExtJS对Ajax的支持 •Ext.Ajax.request Ext.View.View数据视图类
- decimal 和 numeric (Transact-SQL)
decimal(18,0)18是定点精度,0是小数位数.decimal(a,b)a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38.b指定小数点右边可以存储的十进制数字的最大个数. ...
- 试题公式解决方案--kindeditor集成jmeditor公式web编辑器
最近在搞一套在线的考试系统,一直为即支持公式编辑又得支持各种附件上传.图片上传.视频音频上传.文字编辑 的web编辑器而犯愁.于是乎试着把 kindeditor和jmeditor集成一下,多了不说了直 ...
- 伸展树 Splay 模板
学习Splay的时候参考了很多不同的资料,然而参考资料太杂的后果就是模板调出来一直都有问题,尤其是最后发现网上找的各种资料均有不同程度的错误. 好在啃了几天之后终于算是啃下来了. Splay也算是平衡 ...
- Unity3d之shaderLab内置变量
float4 _WorldSpaceCameraPos camera在世界坐标系中的位置float4 _WorldSpaceLightPos0 灯光在世界坐标系中的位置 转载请注明出处: http:/ ...
- (中等) CF 311B Cats Transport,斜率优化DP。
Zxr960115 is owner of a large farm. He feeds m cute cats and employs p feeders. There's a straight r ...
- 关于在TabBar 中添加按钮,并通过block 或代理在控制器中实现响应
相信很多朋友会遇到在TabBar中添加按钮,并要求点击按钮能够实现一些功能,但是当我们自定义的时候,怎么才能在控制器中响应?通常我会用代理或者block,block性能更好,建议使用. 自定义TabB ...
- Linux 分区和目录
[1. 分区与目录概念理解] Linux的分区是物理上的概念,就像我们把一块硬盘分成C:,D:,E:三个区一样,物理上将存储空间分开 Linux的目录是逻辑上的概念,Linux的目录树实际上是一个分 ...