• Struts2自定义转换器输入生日日期输出年、月、日、年龄


    BirthAction.java

    package com.action;
    
    import java.util.Calendar;
    import java.util.Map;
    import com.bean.Birth;
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class BirthAction extends ActionSupport {
        private Birth bir;
        
        public Birth getBir() {
            return bir;
        }
    
        public void setBir(Birth bir) {
            this.bir = bir;
        }
    
        public String execute() throws Exception {
            Calendar cal = Calendar.getInstance(); 
            int yearNow = cal.get(Calendar.YEAR);
            int monthNow = cal.get(Calendar.MONTH)+1; 
            int dayNow = cal.get(Calendar.DAY_OF_MONTH);
            
            int yearBirth=Integer.parseInt(bir.getYear());
            int monthBirth=Integer.parseInt(bir.getMonth());
            int dayBirth=Integer.parseInt(bir.getDay());
            
            int age=yearNow-yearBirth;
            if(monthNow<=monthBirth){
                if(monthNow == monthBirth){
                    if (dayNow < dayBirth) age--; 
                }
                else{
                    age--;
                }
            }
            Map session = ActionContext.getContext().getSession();
            session.put("age", age);
            return SUCCESS;
        }
    }

    BirthConverter.java:

    package com.action;
    
    import java.util.Map;
    
    import org.apache.struts2.util.StrutsTypeConverter;
    
    import com.bean.Birth;
    
    public class BirthConverter extends StrutsTypeConverter {
        @Override
        public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
            Birth bir = new Birth();
            String[] str = arg1[0].split("-");
            bir.setYear(str[0]);
            bir.setMonth(str[1]);
            bir.setDay(str[2]);
            return bir;
        }
        @Override
        public String convertToString(Map arg0, Object arg1) {
            Birth bir = (Birth)arg1;
            return "[" + bir.getYear() + "-" + bir.getMonth() + "-" + bir.getDay() + "]";
        }
    }

    BirthAction-conversion.properties:

    bir=com.action.BirthConverter
    

      Birth.java:

    package com.bean;
    
    public class Birth {
        private String year;
        private String month;
        private String day;
        public String getYear() {
            return year;
        }
        public void setYear(String year) {
            this.year = year;
        }
        public String getMonth() {
            return month;
        }
        public void setMonth(String month) {
            this.month = month;
        }
        public String getDay() {
            return day;
        }
        public void setDay(String day) {
            this.day = day;
        }
        
        
    }
    struts.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    
        <package name="default" extends="struts-default">
            <action name="myBirth" class="com.action.BirthAction">
                <result name="success">/show.jsp</result>
            </action>
        </package>
        
    </struts>    

    index.jsp

    <%@taglib uri="/struts-tags" prefix="s" %>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>Date界面</title>
      </head>
      <body>
      
      <s:form action="myBirth" method="post">
        <s:textfield name="bir" label="请输入生日"></s:textfield>
        <s:submit value="提交"></s:submit>
      </s:form>
      
      </body>
    </html>

    show.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib  uri="/struts-tags" prefix="s"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>Date界面</title>
      </head>
      
      <body>
      生日:<s:property value="bir"/><br>
       年:<s:property value="bir.year"/><br>
       月:<s:property value="bir.month"/><br>
       日:<s:property value="bir.day"/><br>
       年龄:<%=session.getValue("age") %>
      </body>
    </html>
  • 相关阅读:
    TP
    vim manual 个人笔记
    关于动画属性
    过渡
    关于 css3 的filter属性
    html 中行内元素和块级元素区别
    JS以不同的格式保存文件内容
    64位Kali无法顺利执行pwn1问题的解决方案
    鱼龙混杂 · 数据结构学习笔记(01)
    Terminal(终端) 在 OS X下如何快速调用
  • 原文地址:https://www.cnblogs.com/Roni-i/p/9975583.html
Copyright © 2020-2023  润新知