- 浏览: 57966 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
892870119:
这么基础的问题,我怎么不知道,查了半天,唉~~~~
Struts s:if 标签 判断中文 -
wnjustdoit:
给力。。。。
struts.xml向页面传参 -
summer_021:
wkshippou 写道汗!怎么去添加web应用的时候不要加上 ...
EE5 jar 冲突解决办法 -
wkshippou:
汗!怎么去
EE5 jar 冲突解决办法
1、使用JSTL,Servlet最低版本:2.4,查看Servlet版本方式:web.xml
2、JSTL可以操作数据库,XML
3、表达式一:EL表达式:
Action
Struts1配置
JSP:
4、表达式二:JSTL核心库:
jstl标签库的配置
* 将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar)
注意:jstl必须在能够支持j2ee1.4/servlet2.4/jsp2.0版本上的容器才能运行,这个环境是3年前较为常用的环境
Group类:成员属性:name
User类:成员属性:username、age、group
Action:
Struts1配置文件:
页面显示:
页面显示效果:
2、JSTL可以操作数据库,XML
3、表达式一:EL表达式:
Action
Actionpublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //普通字符串 request.setAttribute("hello", "hello world"); //结构 Group group = new Group(); group.setName("和盈"); User user = new User(); user.setUsername("张三"); user.setAge(18); user.setGroup(group); request.setAttribute("user", user); //map Map mapValue = new HashMap(); mapValue.put("key1", "value1"); mapValue.put("key2", "value2"); request.setAttribute("mapvalue", mapValue); //字符串数组 String[] strArray = new String[]{"a", "b", "c"}; request.setAttribute("strarray", strArray); User[] users = new User[10]; for (int i=0; i<10; i++) { User u = new User(); u.setUsername("U_" + i); users[i] = u; } request.setAttribute("users", users); List userList = new ArrayList(); for (int i=0; i<10; i++) { User uu = new User(); uu.setUsername("UU_" + i); userList.add(uu); } request.setAttribute("userlist", userList); //empty request.setAttribute("value1", null); request.setAttribute("value2", ""); request.setAttribute("value3", new ArrayList()); request.setAttribute("value4", "123456"); return mapping.findForward("success"); }
Struts1配置
<action path="/jstlel" type="com.aowin.struts.JstlElAction"> <forward name="success" path="/jstl_el.jsp" /> </action>
JSP:
<h1>测试EL表达式</h1><br> <hr> <li>普通字符串</li><br> hello(jsp脚本):<%=request.getAttribute("hello") %><br> hello(el表达式,el表达式的使用方法$和{}):${hello }<br> hello(el表达式,el的隐含对象pageScope,requestScope,sessionScope,applicationScope,<br> 如果未指定scope,它的搜索顺序为pageScope~applicationScope):${requestScope.hello }<br> hello(el表达式,scope=session):${sessionScope.hello }<br> <p> <li>结构,采用.进行导航,也称存取器</li><br> 姓名:${user.username }<br> 年龄:${user.age }<br> 所属组:${user.group.name }<br> <p> <li>输出map,采用.进行导航,也称存取器</li><br> mapvalue.key1:${mapvalue.key1 }<br> mapvalue.key2:${mapvalue.key2 }<br> <p> <li>输出数组,采用[]和下标</li><br> strarray[2]:${strarray[1] }<br> <p> <li>输出对象数组,采用[]和下标</li><br> userarray[3].username:${users[2].username }<br> <p> <li>输出list,采用[]和下标</li><br> userlist[5].username:${userlist[4].username }<br> <p> <li>el表达式对运算符的支持</li><br> 1+2=${1+2 }<br> 10/5=${10/5 }<br> 10 div 5=${10 div 5 }<br> 10%3=${10 % 3 }<br> 10 mod 3=${10 mod 3 }<br> <!-- ==/eq !=/ne </lt >/gt <=/le >=/ge &&/and ||/or !/not //div %/mod --> <li>测试empty</li><br> value1:${empty value1 }<br> value2:${empty value2 }<br> value3:${empty value3 }<br> value4:${empty value4 }<br> value4:${!empty value4 }<br> 结果: value1:true value2:true value3:true value4:false value4:true
4、表达式二:JSTL核心库:
jstl标签库的配置
* 将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar)
注意:jstl必须在能够支持j2ee1.4/servlet2.4/jsp2.0版本上的容器才能运行,这个环境是3年前较为常用的环境
Group类:成员属性:name
User类:成员属性:username、age、group
Action:
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //普通属性 request.setAttribute("hello", "Hello World"); //测试条件控制标签 request.setAttribute("v1", 1); request.setAttribute("v2", 2); request.setAttribute("v3", new ArrayList()); request.setAttribute("v4", "test"); //html文本 request.setAttribute("sh", "<font color='red'>上海欢迎您</font>"); //测试c:forEach Group group = new Group(); group.setName("和盈"); List userList = new ArrayList(); for (int i=0; i<10; i++) { User user = new User(); user.setUsername("user_" + i); user.setAge(18+i); user.setGroup(group); userList.add(user); } request.setAttribute("userlist", userList); //测试循环输出map Map map = new HashMap(); map.put("k1", "v1"); map.put("k2", "v2"); request.setAttribute("mapvalue", map); //测试c:forTokens request.setAttribute("strTokens", "1,2,3,4,5,6"); return mapping.findForward("success"); }
Struts1配置文件:
<action path="/jstlcore" type="com.aowin.struts.JstlCoreAction"> <forward name="success" path="/jstl_core.jsp" /> </action>
页面显示:
<h1>测试jstl核心库</h1> <hr> <li>测试c:out</li><br> hello(default):<c:out value="${hello}"/><br> hello(el表达式):${hello }<br> hello(default="123"):<c:out value="${abc}" default="123"/><br> <!-- 去不到就为空串 --> hello(default="123"):<c:out value="${abc}">123</c:out><br> sh(defalut):<c:out value="${sh}"/><br> <!-- 取scope里东西value里面要用el表达式 --> bj(escapeXml="true"):<c:out value="${sh}" escapeXml="true"/><br> bj(escapeXml="false"):<c:out value="${sh}" escapeXml="false"/><br> bj(el表达式):${sh }<br> <p> <li>测试c:set和c:remove</li><br> <!-- 生命一个变量 默认scope为page --> <c:set value="123" var="temp"/> temp:${temp }<br> <c:remove var="temp"/> temp:${temp }<br> <p> <li>测试条件控制标签c:if</li><br> <c:if test="${v1 lt v2}" var="v"> v1小于v2<br>v=${v }<br> </c:if> <!-- 为空或者为null test结果都为true --> <c:if test="${empty v3}"> v3为空<br> </c:if> <c:if test="${empty v4}"> v4为空<br> </c:if> <p> <li>测试条件控制标签c:choose,c:when,c:otherwise</li><br> <!-- when 1个或者多个 --> <!--otherwise 0个或者1个 --> <!-- if() else if() else if() else() --> <c:choose> <c:when test="${v2 gt v1}"> v1小于v22<br> </c:when> <c:when test="${v1 lt v2}"> v1小于v23<br> </c:when> <c:otherwise> v1大于v2<br> </c:otherwise> </c:choose> <c:choose> <c:when test="${empty v4}"> v4为空<br> </c:when> <c:otherwise> v4不为空<br> </c:otherwise> </c:choose> <p> <li>测试循环控制标签c:forEach</li><br> <table border="1"> <tr> <td>姓名</td> <td>年龄</td> <td>所属组</td> </tr> <c:choose> <c:when test="${empty userlist}"> <tr> <td colspan="3">没有符合条件的数据!</td> </tr> </c:when> <c:otherwise> <c:forEach items="${userlist}" var="u"> <tr> <td>${u.username }</td> <td>${u.age }</td> <td>${u.group.name }</td> </tr> </c:forEach> </c:otherwise> </c:choose> </table> <p> <li>测试循环控制标签c:forEach,varstatus</li><br> <table border="1"> <tr> <td>姓名</td> <td>年龄</td> <td>所属组</td> </tr> <c:choose> <c:when test="${empty userlist}"> <tr> <td colspan="3">没有符合条件的数据!</td> </tr> </c:when> <c:otherwise> <%--varStatus:变量状态 --%> <c:forEach items="${userlist}" var="user" varStatus="vs"> <c:choose> <c:when test="${vs.count % 2 == 0}"> <tr bgcolor="red"> </c:when> <c:otherwise> <tr> </c:otherwise> </c:choose> <td> <c:out value="${user.username}"/> </td> <td> <c:out value="${user.age}"/> </td> <td> <c:out value="${user.group.name}"/> </td> </tr> </c:forEach> </c:otherwise> </c:choose> </table> <p> <li>测试循环控制标签c:forEach,begin,end,step</li><br> <table border="1"> <tr> <td>姓名</td> <td>年龄</td> <td>所属组</td> </tr> <c:choose> <c:when test="${empty userlist}"> <tr> <td colspan="3">没有符合条件的数据!</td> </tr> </c:when> <c:otherwise> <c:forEach items="${userlist}" var="user" begin="2" end="8" step="2"> <tr> <td>${user.username}</td> <td>${user.age}</td> <td>${user.group.name }</td> </tr> </c:forEach> </c:otherwise> </c:choose> </table> <p> <li>测试循环控制标签c:forEach,普通循环</li><br> <c:forEach begin="1" end="10"> a<br> </c:forEach> <p> <li>测试循环控制标签c:forEach,输出map</li><br> <!-- v:entity对象 --> <c:forEach items="${mapvalue}" var="v"> ${v.key }=${v.value }<br> </c:forEach> <p> <li>测试循环控制标签c:forTokens(逗号间隔或者其他符号间隔的输出)</li><br> <c:forTokens items="${strTokens}" delims="," var="v"> ${v }<br> </c:forTokens> <p> <li>测试c:catch</li><br> <% try { Integer.parseInt("asdfsdf"); }catch(Exception e) { out.println(e.getMessage()); } %> <p> <!-- var:放异常信息的变量 --> <c:catch var="exinfo"> <% Integer.parseInt("asdfsdf"); %> </c:catch> ${exinfo }<br> <p> <!-- 相当于include --> <li>测试c:import</li><br> <c:import url="http://icafebar-pc:8080/struts0400_jstl/"/> <p> <li>测试c:url和c:param</li><br> <!-- 生成一个url串 --> <c:url value="http://www.baidu.com" var="v"> <c:param name="username" value="Jack"/> <c:param name="age" value="20"/> </c:url> ${v }<br> <li>测试:redirect</li><br> <%--如果不用context 则url里面写全路径 <c:redirect context="/struts0400_jstl" url="/index.jsp"/> --%>
页面显示效果:
测试jstl核心库 测试c:out hello(default):Hello World hello(el表达式):Hello World hello(default="123"):123 hello(default="123"):123 sh(defalut):<font color='red'>上海欢迎您</font> bj(escapeXml="true"):<font color='red'>上海欢迎您</font> bj(escapeXml="false"):上海欢迎您 bj(el表达式):上海欢迎您 测试c:set和c:remove temp:123 temp: 测试条件控制标签c:if v1小于v2 v=true v3为空 测试条件控制标签c:choose,c:when,c:otherwise v1小于v22 v4不为空 测试循环控制标签c:forEach 姓名 年龄 所属组 user_0 18 和盈 user_1 19 和盈 user_2 20 和盈 user_3 21 和盈 user_4 22 和盈 user_5 23 和盈 user_6 24 和盈 user_7 25 和盈 user_8 26 和盈 user_9 27 和盈 测试循环控制标签c:forEach,varstatus 姓名 年龄 所属组 user_0 18 和盈 user_1 19 和盈 user_2 20 和盈 user_3 21 和盈 user_4 22 和盈 user_5 23 和盈 user_6 24 和盈 user_7 25 和盈 user_8 26 和盈 user_9 27 和盈 测试循环控制标签c:forEach,begin,end,step 姓名 年龄 所属组 user_2 20 和盈 user_4 22 和盈 user_6 24 和盈 user_8 26 和盈 测试循环控制标签c:forEach,普通循环 a a a a a a a a a a 测试循环控制标签c:forEach,输出map k1=v1 k2=v2 测试循环控制标签c:forTokens(逗号间隔或者其他符号间隔的输出) 1 2 3 4 5 6 测试c:catch For input string: "asdfsdf" java.lang.NumberFormatException: For input string: "asdfsdf" 测试c:import 测试JSTL 测试EL表达式 测试jstl核心库 测试jstl格式化库 测试jstl函数库 测试c:url和c:param http://www.baidu.com?username=Jack&age=20 测试:redirect
发表评论
-
Struts1_处理数据的技巧
2012-05-31 21:15 9541、ActionFrom中:productId ... -
Struts1_学习笔记7_struts0600_actionforward_重定向_actionforward_actionmapping
2012-05-30 13:56 2417ActionForward的使用 1、重定向: 第一种实现方 ... -
Struts1_学习笔记6_struts0500_actionform_动态ActionForm_转换器
2012-05-30 13:38 11041、动态ActionForm 动 ... -
Struts1中的struts-config.xml配置文件_转
2012-05-30 12:29 875以下内容是否都正确 不 ... -
Struts1_学习笔记5_struts0400_jstl_格式化库_函数库
2012-05-29 14:49 1014jstl标签库的配置 * 将jstl.jar和standar ... -
Struts1_学习笔记3_struts0300_taglib_bean_logic_Iterate标签
2012-05-28 20:44 1076bean标签: Action: public Actio ... -
Struts1_学习笔记2_struts0200_trainnig_cal
2012-05-28 20:29 666Action: @Override public Ac ... -
Struts1_学习笔记1_struts0100_login
2012-05-28 20:23 869Action:单实例(单例),多线程使用时如果有可以修改的成员 ... -
不用Struts2标签 拿到OGNL值栈的值_转
2012-05-24 16:10 710首先WEBWORK的核心机制是OGNL,于是追了一下有关XWO ... -
(转) Struts2 URL参数 s:if 判断应用
2012-05-04 10:14 727Struts2的s:if标签很怪异,下面来具体地看看,如何用s ... -
Struts2 xml 配置 常量 action_转
2011-08-04 09:50 1010<?xml version="1. ... -
JDBC ResultSet
2011-08-04 08:43 685public List<GrpGroup> get ... -
Struts2 Iterator 标签
2011-07-05 10:12 827struts2的s:iterator 可以遍历 数据栈里面的任 ... -
Struts 去FieldErrror红点
2011-06-09 17:18 742<style type="text/css&q ... -
Struts s:if 标签 判断中文
2011-06-09 09:54 2673username 来自action 在页面上取得usern ... -
struts.xml向页面传参
2011-06-08 20:54 1957请求地址: <a href="actio ...
相关推荐
以上内容仅是Struts2学习笔记中的核心部分,实际学习时还需要深入理解拦截器、结果类型配置、插件机制、异常处理等更多高级特性。Struts2提供了强大的功能和灵活性,是Java Web开发中不可或缺的一部分。
Struts2立体结构笔记主要涵盖...通过深入学习和实践Struts2立体结构笔记,开发者可以更好地掌握Struts2框架的使用,创建高效、稳定且易于维护的Web应用程序。同时,结合EL和JSTL,能够使页面表现力更强,提高开发效率。
总之,Struts框架结合JSTL和EL表达式,为Java Web开发提供了强大且易用的工具集,使开发者能够更加专注于业务逻辑,而非底层的表示层细节。通过熟练掌握这些工具,初学者可以快速提升Web应用开发能力。
3. **集成与扩展**:Struts2在整合JSTL、EL表达式等方面更加成熟,提供了丰富的插件和扩展机制,如类型转换、国际化支持等。 4. **配置与管理**:Struts2的配置更加灵活,支持XML、注解、自定义配置等方式,简化了...
2. **使用JSTL或其他表达式语言**:对于更高级的需求,可以使用JSTL标签库或者EL表达式语言。例如,如果你想要从`request`域获取数据,可以这样写: ```jsp ${requestScope.username}" /> ``` #### 总结 通过...
【Java学习笔记、SSH学习笔记】是一份涵盖了Java Web开发中的关键技术和框架的资源集合,主要涉及了JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)、EL(Expression Language)以及SSH...
- Struts1使用JSTL EL,但其对集合和索引属性的支持有限。 - Struts2引入了OGNL(对象图表示语言),这是一个更强大和灵活的表达式语言,能更好地处理复杂的对象导航和类型转换。 5. **页面绑定与类型转换**: -...
4. **JSTL(JavaServer Pages Standard Tag Library)**:JSTL提供了一套标准的标签库,减少了JSP页面中的Java代码。笔记会讲解如何引入和使用JSTL标签。 5. **JDBC(Java Database Connectivity)**:JavaWeb应用...
《软件工程师学习笔记大全》包含了中山大学的课程资源,涵盖了软件开发的核心技术,是一份非常宝贵的资料集合。这个压缩包中的文件主要围绕Java、C++、企业级应用框架以及Web开发等方面,为软件工程师的学习提供了...
4. **使用EL表达式**: - 在JSP页面中,可以使用EL(Expression Language)表达式来访问Action中的属性,例如`${cityId}`或`${mthCity.cityId}`。 #### 二、Action与Hibernate的集成 1. **业务层设计**: - 通常...
同时,"韩顺平.j2ee视频实战教程"系列文档可能涵盖了JSP的进阶内容,如EL表达式、JSTL标签库、自定义标签以及Servlet与JSP的交互。 Oracle数据库的学习则在笔记中占有一席之地,虽然具体细节未知,但通常会包含SQL...
笔记可能讲解了JSP的基本元素(如指令、脚本元素、动作标签)、EL(表达式语言)、JSTL(JSP标准标签库)以及JSP与Servlet的关系。 7. **Servlet.doc**: Servlet是Java Web开发中的服务器端组件,用于处理HTTP...
Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...
EL是用于简化JSP页面中的表达式,而JSTL提供了一系列标准标签,如fmt(格式化),sql(数据库操作),c(条件和循环),fn(函数库)等,它们极大地提高了代码的可读性和可维护性。 8. **MVC模式与JSP** 在传统的...
笔记可能涉及JSP指令、脚本元素、EL(表达式语言)和JSTL(JavaServer Pages Standard Tag Library)。 8. **14. Struts1.x note.txt** - Struts 1是早期的MVC(模型-视图-控制器)框架,用于构建Java Web应用。...
Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...
#### JSTL与EL表达式 - **区别**: - **JSTL**:Java Server Pages Standard Tag Library,提供了一系列标准标签来简化JSP页面的开发。 - **EL**:Expression Language,用于简化JSP页面中的表达式书写,可以直接...
学习JSP包括脚本元素、指令标签、EL(表达式语言)和JSTL(JavaServer Pages Standard Tag Library)。 3. **MVC(Model-View-Controller)模式**:在JavaWeb开发中,MVC模式被广泛使用,它将业务逻辑(Model)、...
课程可能涵盖了JSP的基本语法、EL(Expression Language)表达式、JSTL(JavaServer Pages Standard Tag Library)以及JSP的脚本元素和指令。 在Java Web中,会话管理也是一个关键点。day08可能讨论了如何在Servlet...