jsp中的一些问题
jsp里的${pageContext.request.contextPath}
在JSP中,
${pageContext.request.contextPath}是一个EL表达式(Expression Language Expression),它用于获取当前应用的上下文路径(Context Path)。上下文路径是指Web应用在容器中被部署的位置,例如如果一个Web应用被部署在Tomcat服务器的根目录下,其上下文路径就是空字符串;如果这个Web应用被部署在/myapp目录下,则上下文路径就是/myapp。
${pageContext.request.contextPath}这个EL表达式会被解析为当前应用的上下文路径,并可以用于构建相对路径的URL。例如,假设你正在编写一个JSP页面,你想在页面中引用一个应用中的静态资源(例如CSS或JavaScript文件),你可以将路径设置为${pageContext.request.contextPath}/resources/css/style.css,这样就可以确保资源路径是相对于应用的上下文路径而不是相对于当前URL路径的。
ssm 实体类的Date类型数据导util还是sql
在使用Spring框架的SSM(Spring + SpringMVC + Mybatis)开发中,实体类的Date类型数据可以导入Java的util.Date或者SQL的Date。
如果使用util.Date,在数据库中存储的时间会精确到毫秒,并且可以和java.util包中的其他日期、时间类(例如Calendar)使用。这种方式通常被用于创建应用程序的日志记录,或者在需要精确到毫秒的场景中使用。
如果使用sql.Date,在数据库中存储的时间只精确到日期,不包含时分秒信息,因此不支持与java.util包中的日期、时间类一起使用。这种方式通常被用于记录只需要日期,不需要时间的数据,例如生日、注册日期等。
在实际开发中,你可以根据项目需求选择使用哪种Date类型。如果需要精确到毫秒,或者需要与java.util包中的日期、时间类一起使用,则应该选用util.Date;否则,就应该选用sql.Date。
mapper扫描器怎么处理mapper.xml
在使用MyBatis框架进行开发时,Mapper扫描器(MapperScannerConfigurer)是一个用于扫描Mapper接口的Bean,它会自动发现并注册命名空间(namespace)等于Mapper接口全限定名、Mapper接口中方法名和Mapper.xml文件中的ID相同的映射语句。
当Mapper扫描器扫描到一个Mapper接口时,它会使用动态代理技术生成一个Mapper接口的实现类,并将其注册到Spring容器中。在实际使用中,我们通常将Mapper接口和Mapper.xml文件放在同一目录下,并使用相同的名称。例如,一个UserMapper接口对应的Mapper.xml文件通常被命名为UserMapper.xml。
要让Mapper扫描器扫描并注册Mapper接口,需要在Spring的配置文件中配置MapperScan。下面是一个示例配置:
<!-- 配置MapperScan -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper" />
</bean>
在这个例子中,MapperScan会扫描com.example.mapper包中的所有Mapper接口,并自动发现并注册这些接口的映射语句。
注意,在使用Mapper扫描器时,需要确保Mapper接口和Mapper.xml文件的名称和位置对应正确,否则Mapper扫描器将无法自动发现映射语句。此外,也可以通过配置Mapper XML文件的路径来指定Mapper.xml文件的位置,例如:
<!-- 配置MapperScan -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<property name="mapperLocations" value="classpath*:com/example/mapper/*.xml" />
</bean>
在这个例子中,MapperScan会扫描com.example.mapper包中的所有Mapper接口,并使用classpath:com/example/mapper/.xml来指定Mapper.xml文件的位置。
springmvc视图解析器的prefix和suffix属性的作用
在Spring MVC框架中,视图解析器(View Resolver)是一个用于将Controller层返回的逻辑视图名(Logical View Name)解析为物理视图路径(Physical View Path)的组件。Spring MVC支持多种视图解析器,例如InternalResourceViewResolver。
InternalResourceViewResolver是一个内置的视图解析器,用于将逻辑视图名解析为对应的JSP页面路径。它有两个属性:prefix和suffix。
prefix:指定JSP页面的路径前缀,例如/WEB-INF/views/。当Controller层返回的逻辑视图名为“myPage”时,InternalResourceViewResolver将会根据prefix和suffix的配置将“myPage”解析为/WEB-INF/views/myPage.jsp。
suffix:指定JSP页面的文件后缀,例如.jsp。当Controller层返回的逻辑视图名为“myPage”时,InternalResourceViewResolver将会根据prefix和suffix的配置将“myPage”解析为/WEB-INF/views/myPage.jsp。
因此,prefix和suffix属性的作用是用于构造逻辑视图名和物理视图路径之间的关系。通过配置prefix和suffix属性,我们可以实现将逻辑视图名与物理视图路径之间的对应关系,从而让Spring MVC框架在向客户端返回响应时正确地渲染JSP视图。
jsp中的一些问题的更多相关文章
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- java web学习总结(二十八) -------------------JSP中的JavaBean
一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...
- jsp中的@include与jsp:include区别详解
1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...
- bootstrap在jsp中的应用
http://www.bootcss.com/ 下载bootstrap的js,css文件: 在jsp中的应用: 第一步: 新建一个web项目 将bootstrap下载下来的文件放入WEB-INF下面的 ...
- jsp中超链接路径的写法
主题 超链接不就是一个地址字符串吗?这能有什么花头? LZSB! 曾经我也是这么想的.... 最近对apache的学习让我对网页中超链接,CSS,js的路径的写法有了一些新的认识. 所以这篇文章主要分 ...
- jsp中头的导入两种方式区别
1.<jsp:include page="top.jsp">先将top.jsp中的java脚本和jsp指令执行完毕以后再讲top.jsp页面加入面中 2.<%@ ...
- Spring MVC:在jsp中引入css
为了将css引入jsp中,今天可真是踩了好多坑,最后在stackoverflow上找到了解决方法,不多说贴出代码. 在web.xml中添加以下代码: <servlet-mapping> & ...
- 使用Maven构建Java Web项目时,关于jsp中引入js、css文件路径问题。
今天有点闲,自己动手搭建一个Java Web项目,遇到jsp中引入js.css文件时路径不正确的问题,于是在网上查阅了很多资料,最终都无法解决问题,于是,上stackoverflow找到了解决方法,这 ...
- jsp中jstl标签的类似 if - else 语句 的语法
在jsp中引入jstl的标签库和函数库 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c&q ...
- jsp中两种include的区别【转】
引用文章:http://www.ibm.com/developerworks/cn/java/j-jsp04293/ http://www.cnblogs.com/lazycoding/archive ...
随机推荐
- 海思码率控制相关参数调优(CBR/VBR)
1.CBR 海思相关参数调整(在Hisi板,cat /proc/umap/rc 可查看相关参数变化) 1.1 RC参数 1.2 VENC参数 VENC_PARAM_H264_CBR_S/VENC_PA ...
- vue项目中使用lottie动画
一,安装vue-lottie 1 npm install --save vue-lottie 二,引用vue-lottie 在main.js引入并全局注册组件也可在页面单独引用 1 import lo ...
- 2022-12-22:给定一个数字n,代表数组的长度, 给定一个数字m,代表数组每个位置都可以在1~m之间选择数字, 所有长度为n的数组中,最长递增子序列长度为3的数组,叫做达标数组。 返回达标数组的
2022-12-22:给定一个数字n,代表数组的长度, 给定一个数字m,代表数组每个位置都可以在1~m之间选择数字, 所有长度为n的数组中,最长递增子序列长度为3的数组,叫做达标数组. 返回达标数组的 ...
- 2022-04-04:k8s中kubectl源码用到了哪些设计模式?除了工厂和单例。
2022-04-04:k8s中kubectl源码用到了哪些设计模式?除了工厂和单例. 答案2022-04-04: 1.建造者模式.resource.Builder.D:\go_path\src\git ...
- 2021-11-19:[0,4,7] : 0表示这里石头没有颜色,如果变红代价是4,如果变蓝代价是7,[1,X,X] : 1表示这里石头已经是红,而且不能改颜色,所以后两个数X无意义,[2,X,X]
2021-11-19:[0,4,7] : 0表示这里石头没有颜色,如果变红代价是4,如果变蓝代价是7,[1,X,X] : 1表示这里石头已经是红,而且不能改颜色,所以后两个数X无意义,[2,X,X] ...
- 运行和编译时期资源加载的不同【vue】
开发语言都有编译和运行两个阶段,很多时候这个也会带来许多bug 如:一个项目在开发阶段测试没有问题,然上线发布后就会有这样那样的问题,譬如说图片的加载,静态数据(js,css,json)读取错误 一 ...
- Pandas 加载数据的方法和技巧
哈喽大家好,我是咸鱼 相信小伙伴们在学习 python 数据分析的过程中或多或少都会听说或者使用过 pandas pandas 是 python 的一个拓展库,常用于数据分析 今天咸鱼将介绍几个关于 ...
- Docker 镜像命令
Docker 镜像命令 1.Docker images--列出本地镜像 命令:docker images [OPTIONS] [REPOSITORY[:TAG]] 选项 -a :列出本地所有的镜像(含 ...
- 新风向标:学术界开始从 Python 转向 Rust
作者 | Jeffrey M. Perkel 策划 | Tina 来源 | Rust语言中文社区 Rust 现在已经越来越受到科学家们的欢迎了,比起 Python,Rust 有着更高效的性能,同时在社 ...
- 流量劫持 —— GZIP 页面零开销注入 JS
前言 HTTP 代理给页面注入 JS 是很常见的需求.由于上游服务器返回的页面可能是压缩状态的,因此需解压才能注入,同时为了节省流量,返回下游时还得再压缩.为了注入一小段代码,却将整个页面的流量解压再 ...