html改jsp替换头文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title></title>往上替换
定义完以上之后,<%= basePath %>/jsp/hello.jsp 相当于全路径
El表达式
语法结构${expression}
JSTL(JSP标准标签库)
<% %> <%= %>
${pageContext.request.contextPath}等价于<%=request.getContextPath()%> 或者可以说是<%=request.getContextPath()%>的EL版 意思就是取出部署的应用程序名或者是当前的项目名称
比如我的项目名称是ajax01 在浏览器中输入为
http://localhost:8080/ajax01/login.jsp
${pageContext.request.contextPath}或<%=request.getContextPath()%>取出来的就是/ajax01,而"/"代表的含义就是http://localhost:8080
所以我们项目中应该这样写${pageContext.request.contextPath}/login.jsp,这种方式还是一种相对路径取法;<%= basePath %>/jsp/hello.jsp是绝对路径取法。
清除input框缓存历史记录
<input class="" type="text" autocomplete="off" />
遍历(c:foreach)
<c:forEach items="${empList}" var="emp" varStatus="status">
<tr>
<td>${status.count}</td>
<td>${emp.EMPNO}</td>
<td>${emp.ENAME}</td>
<td>
<a href="#">修改</a>
<a href="#">删除</a>
</td>
</tr>
</c:forEach>
其中varStatus可以给每行添加编号,其中${status.count}从1开始;${status.index}从0开始
a标签的跳转
<a href="javascript:void(0)"></a> 点击此a标签不跳转任何代码
<a href="emp/toUpdateEmp?${emp.EMPNO}">修改</a>
<a href="javascript:del(${emp.EMPNO})">删除</a>
下拉菜单的选择和传值
jsp页面中
<select name="DEPTNO">
<option value="1">=请选择=</option>
<c:forEach items="${deptList}" var="dept">
<option value="${dept.DEPTNO}">${dept.DNAME}</option>
</c:forEach>
</select>
controller层接收
@RequestMapping("addEmp")
public String addEmp(@RequestParam Map map){
int row=empService.addEmp(map);
if(row>0){
return "redirect:empList";
}
return "emp/errorEmp";
}
通过@RequestParam接收到参数map,用map.get("DEPTNO")获取选择值
date类型的传递
jsp页面中、
<tr>
<td>雇佣日期</td>
<td><input type="date" name="HIREDATE"/></td>
</tr>
mapper文件中,写插入语句时候需要用 to_date 转化为date类型才能存入数据库
to_date(#{HIREDATE},'yyyy-mm-dd')
<fmt:formatDate>标签格式化日期
在springmvc的demo中有用到
jsp页面引入标签
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
在需要格式化时用以下方法取值
<fmt:formatDate value="${item.itemDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
其中,item是实体,其中的itemDate是实体的字段,类型为java.util.Date
给下拉菜单赋初始值
jsp页面中select引入id="deptNo"
JS写法
<script type="text/javascript">
window.οnlοad=function(){
//JS方式设置下拉框的初始值
var deptNo="${empMap.DEPTNO}";
//JS方法赋值
document.getElementById("deptNo").value=deptNo;
}
</script>
JQuery写法(使用前需要先引入一个jQuery库)
<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
$(function(){
//JQuery方式设置下拉框的初始值
var deptNo="${empMap.DEPTNO}";
$("#deptNo").val(deptNo); jquery方法赋值
});
执行跳转时先进行confirm弹框判断的方法
跳转
<a href="javascript:del(${emp.EMPNO})">删除</a>
JS函数
function del(empNo){
var d=confirm("确认删除此员工?");
if(d){
window.location.href="emp/deleteEmp?EMPNO="+empNo;
}
}
也可以写JS如下
function del(empNo){
if(confirm("确认删除此员工?")){
window.location.href="emp/deleteEmp?EMPNO="+empNo;
}
}
JOSN传值
@RequestMapping(value="/api/subq/expressSub",method={ RequestMethod.POST )
@ResponseBody
public BaseResp expressSub(@RequestBody JSONObject body){
//先定义变量
String num = "";
String comCode = "";
// 判断num参数是否合法,并取值
if (body.containsKey("num")) {
num = body.getString("num");
if ("".equals(StringUtils.deleteWhitespace(num))) {
return DataResp.fail("", "快递单号不能为空");
}
} else {
return DataResp.fail("", "快递单号为必填项");
}
// 判断comCOde参数是否合法
if (body.containsKey("comCode")) {
comCode = body.getString("comCode");
if ("".equals(StringUtils.deleteWhitespace(comCode))) {
return DataResp.fail("", "快递公司代码不能为空");
}
} else {
return DataResp.fail("", "快递公司代码为必填项");
}
}
//下边可以直接使用取到值的num和comCode
}
Ctrl返回值问题
返回值为void,可以直接return ;
public void save(){
……
return ;
}
表单必填项
必填选项红色星标<span style=”color:red;”></span>