• Action的类型转换器


    类型转换器

    局部类型转换器 对某个Action

    全局类型转换器 所有Action的某个类型起作用


    com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;


    public class DateTypeConverter extends DefaultTypeConverter{
       public Object convertValue(Map<String,Object> context,Object value, Class toType)
       {
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
             try
             {
                 if(tpType==Date.Class){//当字符串向Date雷翔转换时
                      String[] params=(String[]) Value; //Request.getParameterValues()
                  }
             }
               return super.convertValue(context,Value,toType);
       }
    }

    HelloWorldAction-conversion.properties
    局部类型转换器:
    第一步:定义一个类型转换器 继承这个类DefaultTypeCOnverter后重写这个方法
    第二部:注册 仅仅对Action中的属性进行转换就注册一个局部类型转换器 取名规则 要转换的Action的类名加-conversion.properties固定写法
    内容当然是固定的属性类型 如Action中的属性 private Date birthday; 那么属性文件中就 birthday=cn.itcast.type.converter.DateTypeConverter 即包名.类名 
    全局类型转换器:
    第一步:定义一个类型转换器
    在WEB-INF/classes下放置xwork-conversion.properties文件.
    文件中的内容为:
    待转换的类型=类型转换器的全类名

    ===========================================================================================================

    访问或添加request/session/application属性

    ActionContext ctx = ActionContext.getContext();
    ctx.getApplication().put("app","应用范围");//往ServletContext里放入app
    ctx.getSession().put("ses","session范围");//往session里放入ses
    ctx.put("req","request范围");//往request里放入req
    ctx.put("names",Arrays.asList("老张","老黎","老方"));
    return "message";


    HttpServletRequest request = ServletActionContext.getRequest();
    ServletContext servletContext = ServletActionContext.getServletContext();
    request.setAttribute("req","请求范围属性");
    request.getSession().setAttribute("ses","会话范围属性");
    servletContext.setAttribute("app","应用范围属性");


    前台页面取值
    ${applicationScope.app}
    ${sessionScope.ses}
    ${requestScope.req}
    获取HttpServletRequest / HttpSession /ServletContext/ HttpServletResponse对象

    方法一:通过ServletActionContext类直接获取

    方法二:实现指定接口,有struts框架运行时注入:


    在学习一下 如何加JSTL标签 Jar包
    在下载的opensoftlib文件下struts-1.3.8-lib下找jstl.jar和standard.jar版本是1.1版本拷贝到项目的lib下
    在页面上引入JSTL标签 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>1.1版本
    页面呈现的迭代方式
    <c:forEach items="${names}" var="name">
        ${name} <br/>
    </c:froEach>

    ognl标签可以不学习 但是表单标签要做数据回显通过EL表达式也可以做 主要还是学习表单标签


     

  • 相关阅读:
    【codeforces 766C】Mahmoud and a Message
    【codeforces 766D】Mahmoud and a Dictionary
    【b704 && BZOJ 1999】树网的核
    优秀Java程序员必须了解的GC工作原理
    Apparatus, system, and method for automatically minimizing real-time task latency and maximizing non-real time task throughput
    NODEJS网站
    day63-webservice 01.cxf介绍
    04.webservice客户端调用
    03.WSDL分析
    02.socket实现远程调用
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2098702.html
Copyright © 2020-2023  润新知