`
wlh269
  • 浏览: 453411 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts_jstl完全使用

阅读更多
	*****Action中的处理:**************8
		//====普通字符串======//
		request.setAttribute("hello", "Hello World");
		//====对象===============//
		User user=new User();
		user.setUsername("wulihai");
		user.setAge(25);
		Group group=new Group();
		group.setName("地下党");
		user.setGroup(group);
		//=====以上是业务逻辑处理,应该单独放入一个业务处理类中======
		request.setAttribute("user", user);
		//=======Map==============//
		Map elMap=new HashMap();
		elMap.put("key1", "value1");
		elMap.put("key2", "value2");
		request.setAttribute("elMap", elMap);
		//=========集合======//
		List userlist=new ArrayList();
		for (int i=0; i<10; i++) {
			User usr = new User();
			usr.setUsername("USR_" + i);
			usr.setAge(25+i);
			userlist.add(usr);
		}
		request.setAttribute("userlist", userlist);
		
		//=========对象数组=========//
		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);
		//=========字符串数组========//
		String[] strArray = new String[]{"a", "b", "c"};
		request.setAttribute("strArray", strArray);
	
	
	
	*******Jsp页面获取值***********************
	
	//=====普通字符串,EL表达式的使用方法$和{},EL表达式的隐含对象pageScope/requestScope/sessionScope/applicationScope等等
			如果为指定scope,它的搜索顺序是pageScope~applicationScope====//	
	hello(el,scope=request): ${requestScope.hello}<br>	
	hello(el,scope=session): ${sessionscope.hello} <br>
	
	//=====对象</li>使用"."来导航
	姓名 : ${user.username}<br>
	年龄 : ${user.age}<br>
	所属组:${user.group.name}<br>
	
	//==Map</li>使用"."来导航
	elMap.value1: ${elMap.key1}<br>
	elMap.value2: ${elMap.key2}<br>
	
	//==集合</li>使用中括号[]加下标数字导航<br>
	userlist[4].username: ${userlist[4].username}<br>
	userlist[4].age: ${userlist[4].age}<br>
	
	//==对象数组</li>使用中括号[]加下标数字导航<br>
	users[5].username:${users[5].username}
	//==字符串数组</li>使用中括号[]加下标数字导航<br>
	strArray[0]:${strArray[0] }<br>
	strArray[1]:${strArray[1] }<br>
	
	//==EL表达式对运算符的支持</li><br>
	1+4:${1+4 }<br>
	9-3:${9-2 }<Br>
	2*3:${2*3 }<br>
	9/2:${9/3 }<br>
	9mod2:${9 mod 2 }<br>
	4div1:${4div 1 }<br>
===================JSTL的核心标签	===================
//==c:out的value属性支持El表达式,<font color='red'>特别注意value后面可以跟El表达式,也可以跟字符串
	 hello(value="${hello}): <c:out value="${hello}"/><br>
	 abcd:<c:out value="${abcd}" /><br>
	 c:out的default属性,此外c:out的defalut属性是默认值,在value为空的情况下取default的值<br>
	 abcd(default="为空"):<c:out value="${abcd}" default="为空"/><br>
	 c:out的escapeXml属性,默认为true,原样输出<br>
     bj(escapeXml="false")<c:out value="${bj}" escapeXml="false"/><br>
     bj(escapeXml="true")<c:out value="${bj}" escapeXml="true"/><br>
     //==c:set/c:remove
     <c:set var="temp" value="${userlist[1].username}"/>
     temp:<c:out value="${temp}"/><br>
     <c:remove var="temp"/>
     temp:<c:out value="${temp}"/><br>
      //==c:if
      <c:if test="${v1 lt v2}">
        v1 小于 v2
      </c:if>	
	//===c:forEach循环输出Map的元素==//
      <c:forEach items="${elMap}" var="m">
      ${m.key},${m.value }<br>
      </c:forEach>
	
	//====c:choose/c:when/c:otherwise============//
      <table border="1">
      <tr>
             <td>姓名</td>
              <td>年龄</td>
               <td>所属组</td>
            </tr>
      <c:choose>
        <c:when test="${(empty userlist)}">//判断userlist是否为空
          <tr>
            <td colspan="3"> 没有合适的数据</td>
          </tr>
       </c:when>
       <c:otherwise>
          //=====迭代集合userlist,从第2个开始,第8个结束,步长为2======//
         <c:forEach items="${userlist}" var="usr" begin="2" end="8" step="2" varStatus="v">
         		//====两层嵌套,c:otherwise内部又好包含又c:when,c:otherwise===//
         		<c:choose>
		           <c:when test="${v.count % 2==0}">//===判断行数是否是偶数,如果是偶数,将背景色改为红色===//
		             <tr bgcolor="red">
		           </c:when>
		           <c:otherwise>
		            <tr>
		           </c:otherwise>
	           </c:choose>
              <td>${usr.username}</td>
              <td>${usr.age }</td>
               <td>${usr.group.name }</td>
            </tr>
         </c:forEach>
       </c:otherwise>
      </c:choose>
      
      //=====c:import,相当于jsp中的include包含某个页面====//
      <c:import url="http://localhost:8080/login_struts"/>
      //=====credirect:重定向=====//
      <c:redirect context="/login_struts" url="/login.jsp"/>
	

	
	
分享到:
评论

相关推荐

    JSP+Struts+JSTL+EL新闻发布系统jsp

    5、本系统采用到的技术:JSP+Struts+JSTL+EL,我本人喜欢JSTL+EL的组合方式,他不景向页面美观! 6、mysql.sql这个文件是mysql的脚本文件,您可以用它来创建数据库! &lt;!DOCTYPE ...

    Struts应用开发完全手册源代码

    《Struts应用开发完全手册》是一本深入讲解Struts框架的书籍,通过这本书,开发者可以全面学习如何使用Struts来设计和实现高效、可维护的Web应用。 这本书的源代码包含了以数字命名的文件,这暗示了每个文件或...

    Struts ajax

    `jstl_sql.jsp` 和 `jstl_xml.jsp` 使用了 JSTL(JavaServer Pages Standard Tag Library),这是一种简化 JSP 开发的标签库,提供了处理数据库查询和XML操作的功能。这些页面可能展示了如何在 JSP 中使用 JSTL 标签...

    spring+struts+hibernate+dwr+jstl做的实例

    以用户管理为例,结合spring struts hibernate dwr jstl做的实例,struts hibernate dwr 与Spring完全结合,实现用户列表、信息增、删、改、查、维护时用户重名提示等功能,还包括页面自动转码设置(web.xml),...

    Struts应用开发完全手册(16-20)

    - 作为标签中的"jsp",这部分内容可能深入讲解了如何使用JSP标签库(JSTL)和Struts自定义标签来创建动态页面。比如,`&lt;s:form&gt;`、`&lt;s:textfield&gt;`、`&lt;s:submit&gt;`等标签用于构建表单和处理用户交互。 5. **国际化...

    Struts1和Struts2 的区别

    - Struts1使用JSTL EL,对于集合和索引属性支持有限。相比之下,Struts2引入了更强大的OGNL,提供了更灵活的对象图遍历和表达能力。 6. **视图(View)绑定**: - Struts1使用标准JSP机制将对象绑定到视图,而...

    struts1&struts2

    - Struts1的配置主要基于XML,而Struts2允许使用XML和注解混合配置,甚至可以完全使用注解,提高了配置的便捷性和可读性。 10. **拦截器(Interceptor)**: - Struts2引入了拦截器机制,允许在Action执行前后...

    struts1国际化小实例

    &lt;%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %&gt; &lt;fmt:setBundle basename="com.example.myapp.message_resources" /&gt; ``` `fmt:setBundle`设置当前的资源文件,`fmt:message`则根据键获取...

    Struts2文档教程

    - Struts1完全依赖于Servlet API。 - Struts2则相对独立,允许Action在没有容器的情况下进行单元测试,尽管仍然可以选择访问request和response对象。 4. **Action执行控制对比**: - Struts1支持为每个模块定义...

    struts1.x整合freemarker

    - **Action类改造**: 将原本在JSP中使用的EL表达式和JSTL标签替换为Freemarker语法。 - **创建Freemarker模板**: 设计并创建与Action相对应的Freemarker模板文件(.ftl),放置在指定的模板目录下。 - **配置结果...

    Struts-Localization-Example.zip_localization

    在JSP页面中,我们可以使用JSTL的`fmt`库或者Struts的`&lt;html:text&gt;`、`&lt;html:errors&gt;`等标签来引用资源文件中的内容。 为了根据用户的浏览器设置自动选择正确的Resource Bundle,Struts会检查`Accept-Language`请求...

    ALL-JAVA网页制作完全手册.zip_java完全手册

    手册会详细介绍JSP的指令(如page、include和taglib),动作元素(如jsp:useBean、jsp:setProperty等),以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)。这些工具使得JSP页面更加...

    ## E鹰新闻发布系统 Java

    采用到的技术:JSP+Struts+JSTL+EL,系统特色: 1、前台完全生成静态HTML 2、栏目是无级分类的,您可以随意设置栏目,只要您能想到的,多少都可以:) 3、制作简单,由于本人以前曾经使用过动易网站管理系统,所以在...

    基于struts2注册登录ActionContext.zip

    struts2大量使用拦截器来处理请求,从而允许与业务逻辑控制器 与 servlet-api分离,避免了侵入性(所谓侵入性就是指的这个架构设计出来的部件对系统的影响范围,标签库几乎可以完全替代JSTL的标签库,并且 struts2.x...

    E鹰新闻发布系统111

    采用到的技术:JSP+Struts+JSTL+EL,系统特色: 1、前台完全生成静态HTML 2、栏目是无级分类的,您可以随意设置栏目,只要您能想到的,多少都可以:) 3、制作简单,由于本人以前曾经使用过动易网站管理系统,所以在...

    Java_Web面试题

    * Struts1 使用 ActionForm。 Java Web 面试题涵盖了 Java Web 的多个方面,包括 JSP、Servlet、Cookie、Session、JSTL、J2EE、MVC 模式、Struts 等等,掌握这些知识点对于 Java Web 开发者非常重要。

    E鹰新闻发布系统 java源代码

    5、本系统采用到的技术:JSP+Struts+JSTL+EL,我本人喜欢JSTL+EL的组合方式,他不景向页面美观! 6、mysql.sql这个文件是mysql的脚本文件,您可以用它来创建数据库! 7、这个新闻发布系统,由我个人独立开发,在线...

    jsp完全学习手册,让你爱上JSP

    2. **脚本元素(Scriptlets)**:`&lt;%...%&gt;`用来编写Java代码,但现代最佳实践推荐使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来减少脚本元素的使用。 3. **表达式(Expressions...

Global site tag (gtag.js) - Google Analytics