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 ...
随机推荐
- Linux下ftp常见问题总结
Linux下ftp常见问题总结 似乎拖欠了几篇文章了@_@,来公司半年了,成长了不少!从大学毕业,直到看到http://blog.csdn.net/leixiaohua1020 雷霄骅(然而天妒英才 ...
- 如何将c#在线编辑器嵌入自己项目
如何将c#在线编辑器嵌入自己项目 首先我们需要介绍一下这个在线编辑器,当前的在线编辑器支持c#的代码编译运行,并且无需后台服务,基于WebAssembly实现的在浏览器端去执行我们的c#代码,基于Ro ...
- 【JS】Knockout动态刷新及绑定数据
<script> // Knockout ViewModel Define function RemarkTemplateModel() { var self = this; // Cur ...
- 2020-12-12:现场写代码,把CPU打满,java和go都行,并解释为什么。
福哥答案2020-12-12: 现在的电脑一般是多核的,单个for循环cpu是不会打满的. 我的电脑是四核八线程的,不管是java还是go,6个for循环就能把cpu打满,4个和5个cpu打不满. 为 ...
- 2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP。
2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP. 答案2023-02-25: 使用 github.com/ ...
- Mysql- DDL/DML/DQL/DCL 数据库基本操作语句(持续更新中)
Mysql基本语法 前言: 在测试项目中经常需要使用到简单的Mysql语句,但是不知道语句结构是什么,经常在百度查来查去: 以下就是总结Mysql常用的基础操作语句: 只需要执行从创建开始执行示例中的 ...
- Vue2 去除定时器之常用三种方式及特殊方式
一般情况去除定时器的常用的三种方式方法:创建一下三种钩子函数,一般有其中一个就足以实现清除定时器的效果beforeDestroy(){ beforeDestroy(){ // 离开当前路由前的操作 c ...
- C盘清理,移动node 依赖和缓存文件
由于先前安装的node 没有做任何配置,都是傻瓜式下一步,导致了我很多依赖都放置C盘,内存占用过多:也不太好管理所有觉得将它移动到node安装目录 一.新建文件夹 在原本安装的nodejs目录下新建 ...
- 代码随想录算法训练营Day18 二叉树| 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树
654.最大二叉树 题目链接:654.最大二叉树 给定一个不重复的整数数组 nums . 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值. 递归地 ...
- odoo开发教程九:Odoo10 API
一:纪录集API model中的数据是以集合的形式使用的,因此可以使用集合运算来操作. 集合运算符 record in set返回record是否在set中,record须为单条记录,record n ...