JSP、El表达式、JSTL表达式笔记

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.onload=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>

 

猜你喜欢

转载自blog.csdn.net/qq_37918817/article/details/84592499