jstl学习笔记

本文介绍了一个使用JSP技术实现的示例页面,包括EL表达式的使用方法、JSTL标签库的应用,以及如何通过这些技术来操作JavaBean和集合数据。通过具体的代码示例展示了如何设置和获取属性值、遍历列表等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.org.domain.Person"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
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>My JSP '2.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    <%
  request.setAttribute("abc",null);
   %>
   <!-- value后面的el表达式要用引号,当value的值为null时,输出default后面为的值 -->
   <c:out value="${name}" default="aaa"></c:out>

<br>------------------------------------</br>
<c:set scope="page" value="hello" var="p"></c:set>
${p}

<br>------------------------------------</br>
<%
Map map=new HashMap();
request.setAttribute("map1",map);
 %>
 <!-- 往target属性里面设置map或者javabean对象,property设置map的key值,value为值 -->
<c:set value="123"  target="${map1}" property="key1"></c:set>
${map1.key1 }


<br>------------------------------------</br>
<%
Person p=new Person();
request.setAttribute("person",p);
 %>
 <!-- 往target属性里面设置map或者javabean对象,property设置map的key值,value为值 -->
<c:set value="jack"  target="${person}" property="name"></c:set>
<c:set value="1234"  target="${person}" property="id"></c:set>
${person.name}
${person.id }
<br>------------------------------------</br>

<%
List<String> lists=new ArrayList<String>();
lists.add("1");
lists.add("2");
lists.add("3");
lists.add("4");
lists.add("5");
lists.add("6");
lists.add("7");
lists.add("8");
request.setAttribute("lists",lists);
 %>
 <c:forEach items="${lists}" var="str">
 ${str}
 </c:forEach>
 
 <br>------------利用forEach递归-------------------</br>

<%
Person p1=new Person();
p1.setId(1);
p1.setName("jack1");

Person p2=new Person();
p2.setId(2);
p2.setName("jack2");

Person p3=new Person();
p3.setId(3);
p3.setName("jack3");

Person p4=new Person();
p4.setId(4);
p4.setName("jack4");
List<Person> person=new ArrayList<Person>();

person.add(p1);
person.add(p2);
person.add(p3);
person.add(p4);

request.setAttribute("person",person);
 %>
 <c:forEach items="${person}" var="ps">
 ${ps.id}
 ${ps.name }<br/>
 </c:forEach>
 
 
 <br/>--------------------------<br/>
 <c:url value="/index.jsp" var="index"></c:url>
 <a href="${index }">111</a>
 
 <a href='<c:url value="/index.jsp"/>'>222</a>
 <br/>--------------------------<br/>
<c:if test="${3<2}" var="abc"></c:if>
${abc }
  </body>
</html>

1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值