重温经典struts1之常用标签

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

上一篇,我们学习了struts的基本概念,怎样搭建struts开发环境,从编写formbean,action到jsp页面,以及怎样将他们配入到struts-config.xml文件中,实现通过浏览器发送请求,将处理结果返回页面简单的login功能。
今天我们来学习下struts为我们提供的常用标签,标签是视图技术,主要用在jsp中,常用的功能是,在action中设置到request域或session域中的数据,进行空判断,日期数字格式化,基本数据类型,字符串或javabean中的对象以及html文本直接或转义,最终输出到页面,还可以遍历集合。


配置和使用

struts标签和国际化绑定,在struts-config.xml文件加入下记内容

<struts-config>
    中间略
    <message-resources parameter="MessageResources" />  ←追加的内容
    中间略
struts-config>

在jsp页面中第二行引入下记指令
struts有很多标签库,我们今天主要来学习常用的bean和logic标签

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>

常用标签

  • < bean:write>
    用途是将基本数据类型,字符串或jiavabean中的内容打印到页面,对日期数字数据进行格式化,html文本内容直接或转义输出
    项目中常用于输出,格式化数据使用较少(基本都在java中进行)
    通过下边的示例以及运行效果可以更好的理解使用方法

action代码如下(示例):

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import xxx.xxx.pojo.Group;
import xxx.xxx.pojo.User;

public class BeanWriteAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) {

		request.setAttribute("hello", "helloworld");
		request.setAttribute("htmlText", "text red color");
		request.setAttribute("today", new Date());
		request.setAttribute("n", 12345.1234);

		Group group = new Group();
		group.setName("group1");
		User user = new User();
		user.setUsername("zhang san");
		user.setAge(28);
		user.setGroup(group);

		request.setAttribute("user", user);
		return mapping.findForward("success");
	}
}

代码如下(示例):

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>




Insert title here


	

测试beanwrite标签


  • 普通字符串
  • hello(标签):

    html 文本(defalut):
    html 文本(filter=false):
  • 格式化日期
  • 系统时间(default):
    系统时间(format):
  • 格式化数字
  • 数值(default):
    数值(format):
  • javabean
  • 姓名:">
    年龄:">
    分组:">

    < bean:write>运行效果
    重温经典struts1之常用标签_第1张图片

    • < logic:empty>,< logic:notempty>,< logic:present >,< logic:notPresent>
      这些标签通过字面意思来看,主要是判断,request或session中变量的值是否存在或是否为空值
      通过下边的示例以及运行效果可以很好的理解使用方法

    action代码如下(示例):

    
    import java.util.ArrayList;
    import java.util.Date;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    
    import xxx.xxx.pojo.Group;
    import xxx.xxx.pojo.User;
    
    public class LogicAction extends Action {
    
    	@Override
    	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
    			HttpServletResponse response) {
    
    		request.setAttribute("attr1", null);
    		request.setAttribute("attr2", "");
    		request.setAttribute("attr3", new ArrayList());
    
    		return mapping.findForward("success");
    	}
    }
    

    jsp代码如下(示例):

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
    
    
    
    
    Insert title here
    
    
    	

    测试logic标签(empty,notempty,present,notpresent)


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

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

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

    < logic:empty>,< logic:notempty>,< logic:present >,< logic:notPresent>运行效果
    重温经典struts1之常用标签_第2张图片

    • < logic:iterate>
      主要是遍历集合中的数据,实际项目中常用javabean集合以及嵌套的javabean的输出
      通过下边的示例以及运行效果可以很好的理解使用方法

    action代码如下(示例):

    
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    
    import xxx.xxx.pojo.Group;
    import xxx.xxx.pojo.User;
    
    public class LogicIterateAction extends Action {
    
    	@Override
    	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
    			HttpServletResponse response) {
    
    		Group group = new Group();
    		group.setName("group1");
    
    		List<User> users = new ArrayList<>();
    		for (int i = 0; i< 10; i++) {
    
    			User user = new User();
    			user.setUsername("zhang san_"+i);
    			user.setAge(28+i);
    			user.setGroup(group);
    			users.add(user);
    		}
    
    		request.setAttribute("users", users);
    		return mapping.findForward("success");
    	}
    }
    

    jsp代码如下(示例):

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
    
    
    
    
    Insert title here
    
    
    	

    测试logic迭代标签


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

    < logic:iterate>运行效果
    重温经典struts1之常用标签_第3张图片

    总结

    以上就是struts为我们提供的基本标签的使用,以后我也会随时更新项目中一些常用的标签,下篇见。

    你可能感兴趣的:(struts1,struts)