博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts标签库
阅读量:3979 次
发布时间:2019-05-24

本文共 3174 字,大约阅读时间需要 10 分钟。

     在JSP页面中,使用标记库代替传统的Java代码来实现页面的显示逻辑是大势所趋,然而,由于自定义标记很容易造成重复定义和非标准的实现,于是出现了基于java Web的JSTL和基于struts的taglib等标签库来解决这些问题。

  这些标签库在实现原理上相差无几,学会一种,另一种也就很容易上手,那咱们就从Struts的标签库走起。

  常用的strust标签库有<bean:write>、<logic:empty>和<logic:notEmpty>、<logic:present>和<logic:notPresent>、<logic:iterator>4种。

  使用方法:

  1.在strus-config.xml中配置message-resources,注意,这个标签要放在action-mappings标签后面。配置信息如下:

 
  2.在src目录下引入提供国际化资源文件MessageResources.properties

  3.在JSP页面中引入taglib

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
        
4.下面是分别是<bean:wriete>(获取字段值、JavaBean属性值)、<logic:empty>和<logic:notEmpty>(判断是否为空)、<logic:present>和<logic:notPresent>(判断是否存在)、
<logic:iterator>(迭代取出集合中的数据)分别在Action和JSP页面的配置

   (1)<bean:wriete>-->action

public class BeanWriteAction extends Action {	@Override	public ActionForward execute(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {		// 普通字符串		request.setAttribute("hello", "quwenzhe");		request.setAttribute("today", new Date());		Group group = new Group();		group.setName("提高班");		User user = new User();		user.setUsername("quwenzhe");		user.setAge("24");		user.setGroup(group);		request.setAttribute("user", user);		return mapping.findForward("success");	}}
           
<bean:wriete>-->JSP
姓名:">
年龄:">
所属组:">
       
(2)<logi
c:empty>和<logic:notEmpty>、<logic:present>和<logic:notPresent>-->action
public class EmptyPresentAction extends Action {	@Override	public ActionForward execute(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {		request.setAttribute("attr1", null);		request.setAttribute("attr2", "");		request.setAttribute("attr3", new ArrayList());		return mapping.findForward("success");	}}

             <logic:empty>和<logic:notEmpty>、<logic:present>和<logic:notPresent>-->JSP

attr1为空
attr1为空
attr1存在
attr1不存在

attr2为空
attr2为空
attr2存在
attr2不存在

attr3为空
attr3为空
attr3存在
attr3不存在

           
(3)<logic:iterator>-->action
public class IteratorAction extends Action {	@Override	public ActionForward execute(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response)			throws Exception {		Group group = new Group();		group.setName("提高班");		List userList = new ArrayList();		for (int i = 0; i < 10; i++) {			User user = new User();			user.setUsername("quwenzhe-->" + i);			user.setAge("24-->" + i);			user.setGroup(group);			userList.add(user);		}		request.setAttribute("userList", userList);		return mapping.findForward("success");	}}

              <logic:iterator>-->JSP

姓名 年龄 所属组
没有符合条件的数据

        这样我们在后台Action中通过request设置的值,在JSP页面中通过标签就能很方便的获取到,大大提高工作效率。

转载地址:http://cxkui.baihongyu.com/

你可能感兴趣的文章
libreoffice/openoffice c/c++转换office格式为pdf
查看>>
Tomcat 7.0 64位免安装解压版 安装及配置
查看>>
Android 网络编程 初级入门(一)
查看>>
C++小知识点
查看>>
软件工程师,你必须知道的20个常识
查看>>
常用STL算法2_查找
查看>>
Flutter 插件笔记 | 屏幕适配 flutter_screenutil
查看>>
Flutter UI基础 - Drawer 抽屉视图与自定义header
查看>>
Flutter UI基础 - 使用InkWell给任意Widget添加点击事件
查看>>
OC WKWebView的使用
查看>>
Flutter UI基础 - Image.asset 图片铺满布局
查看>>
Flutter UI基础 - Row、Column详解
查看>>
Flutter UI基础 - 添加背景图片
查看>>
Flutter UI基础 - 布局之Row/Column/Stack
查看>>
Flutter UI基础 - 层叠布局Stack的使用
查看>>
Go - 解决 go get 超时问题
查看>>
SQL - SQL Server 之遍历数据集合的几种方法
查看>>
SQL - SQL Server 之处理JSON数据
查看>>
SQL - SQL Server 之WHILE循环的坑
查看>>
SQL - SQL Server 性能优化之SQL语句总结
查看>>