动态生成html当中的组件

马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
有时html里的字数太多, 而且有一定的规律时,我们就可以用如下的方法产生动态的内容。

例 1.4.1

test.jsp:


<%@ page import="java.util.Date"%>
<%@ page import="java.text.*"%>
<%@ page contentType="text/html; charset=GBK" %>
<jsp:useBean id="se" class="com.GenerateSelect" scope="page"/>
<html>

<body >

<%
int d=Integer.parseInt(new SimpleDateFormat("dd").format(new Date()));
int y=Integer.parseInt(new SimpleDateFormat("yyyy").format(new Date()));
int m=Integer.parseInt(new SimpleDateFormat("MM").format(new Date()));

String str=se.set(y,m,d);
%>

<%=str%>
</body>
</html>




package com;
public class GenerateSelect {
  public String set(int y,int m, int d) {

    String addr = "<form method=post action=date name=date>";

    addr += "<select name='year' size='1' style='font-size: 9pt' > ";

    for (int i = y-25; i <= y+25; i++) {
      if (y == i) {
        addr += "<option value=" + i + " selected> " + i + "年 </option > ";
      }
      else {
        addr += "<option value=" + i + "> " + i + "年 </option > ";
      }
    }

    addr += "</select>";

    addr += "<select name='month' size='1' style='font-size: 9pt' > ";
    for (int i = 1; i <= 12; i++) {
      if (m == i) {
        addr += "<option value=" + i + " selected> " + i + "月 </option > ";
      }
      else {
        addr += "<option value=" + i + "> " + i + "月 </option > ";
      }

    }

    addr += "</select>";
    addr += "<select name='day' size='1' style='font-size: 9pt' > ";
    if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 | m == 12) {
      for (int i = 1; i <= 31; i++) {
        if (d == i) {
          addr += "<option value=" + i + " selected> " + i + "日 </option > ";

        }
        else {
          addr += "<option value=" + i + "> " + i + "日 </option > ";
        }

      }
    }
    else if (m == 4 || m == 6 || m == 9 || m == 11) {
      for (int i = 1; i <= 30; i++) {
        if (d == i) {
          addr += "<option value=" + i + " selected> " + i + "日 </option > ";

        }
        else {
          addr += "<option value=" + i + "> " + i + "日 </option > ";
        }

      }
    }
    else if (m == 2) {
      if (y % 4 != 0) {
        for (int i = 1; i <= 28; i++) {
          if (d == i) {
            addr += "<option value=" + i + " selected> " + i + "日 </option > ";

          }
          else {
            addr += "<option value=" + i + "> " + i + "日 </option > ";
          }

        }
      }
      else if (y % 100 == 0 && y % 400 != 0) {
        for (int i = 1; i <= 28; i++) {
          if (d == i) {
            addr += "<option value=" + i + " selected> " + i + "日 </option > ";

          }
          else {
            addr += "<option value=" + i + "> " + i + "日 </option > ";
          }

        }
      }
      else {
        for (int i = 1; i <= 29; i++) {
          if (d == i) {
            addr += "<option value=" + i + " selected> " + i + "日 </option > ";

          }
          else {
            addr += "<option value=" + i + "> " + i + "日 </option > ";
          }

        }
      }
    }
    addr += "</select><input  type=submit value=submit /></form>";
    return addr;
  }

}






package com;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DatePro extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println(""+request.getParameter("year"));
    }
}



当我们运行test.jsp时,查看浏览器中的源文件时:





<html>

<body >



<form method=post action=date name=date><select name='year' size='1' style='font-size: 9pt' > <option value=1992> 1992年 </option > <option value=1993> 1993年 </option > <option value=1994> 1994年 </option > <option value=1995> 1995年 </option > <option value=1996> 1996年 </option > <option value=1997> 1997年 </option > <option value=1998> 1998年 </option > <option value=1999> 1999年 </option > <option value=2000> 2000年 </option > <option value=2001> 2001年 </option > <option value=2002> 2002年 </option > <option value=2003> 2003年 </option > <option value=2004> 2004年 </option > <option value=2005> 2005年 </option > <option value=2006> 2006年 </option > <option value=2007> 2007年 </option > <option value=2008> 2008年 </option > <option value=2009> 2009年 </option > <option value=2010> 2010年 </option > <option value=2011> 2011年 </option > <option value=2012> 2012年 </option > <option value=2013> 2013年 </option > <option value=2014> 2014年 </option > <option value=2015> 2015年 </option > <option value=2016> 2016年 </option > <option value=2017 selected> 2017年 </option > <option value=2018> 2018年 </option > <option value=2019> 2019年 </option > <option value=2020> 2020年 </option > <option value=2021> 2021年 </option > <option value=2022> 2022年 </option > <option value=2023> 2023年 </option > <option value=2024> 2024年 </option > <option value=2025> 2025年 </option > <option value=2026> 2026年 </option > <option value=2027> 2027年 </option > <option value=2028> 2028年 </option > <option value=2029> 2029年 </option > <option value=2030> 2030年 </option > <option value=2031> 2031年 </option > <option value=2032> 2032年 </option > <option value=2033> 2033年 </option > <option value=2034> 2034年 </option > <option value=2035> 2035年 </option > <option value=2036> 2036年 </option > <option value=2037> 2037年 </option > <option value=2038> 2038年 </option > <option value=2039> 2039年 </option > <option value=2040> 2040年 </option > <option value=2041> 2041年 </option > <option value=2042> 2042年 </option > </select><select name='month' size='1' style='font-size: 9pt' > <option value=1> 1月 </option > <option value=2> 2月 </option > <option value=3> 3月 </option > <option value=4> 4月 </option > <option value=5 selected> 5月 </option > <option value=6> 6月 </option > <option value=7> 7月 </option > <option value=8> 8月 </option > <option value=9> 9月 </option > <option value=10> 10月 </option > <option value=11> 11月 </option > <option value=12> 12月 </option > </select><select name='day' size='1' style='font-size: 9pt' > <option value=1> 1日 </option > <option value=2> 2日 </option > <option value=3> 3日 </option > <option value=4> 4日 </option > <option value=5 selected> 5日 </option > <option value=6> 6日 </option > <option value=7> 7日 </option > <option value=8> 8日 </option > <option value=9> 9日 </option > <option value=10> 10日 </option > <option value=11> 11日 </option > <option value=12> 12日 </option > <option value=13> 13日 </option > <option value=14> 14日 </option > <option value=15> 15日 </option > <option value=16> 16日 </option > <option value=17> 17日 </option > <option value=18> 18日 </option > <option value=19> 19日 </option > <option value=20> 20日 </option > <option value=21> 21日 </option > <option value=22> 22日 </option > <option value=23> 23日 </option > <option value=24> 24日 </option > <option value=25> 25日 </option > <option value=26> 26日 </option > <option value=27> 27日 </option > <option value=28> 28日 </option > <option value=29> 29日 </option > <option value=30> 30日 </option > <option value=31> 31日 </option > </select><input  type=submit value=submit /></form>
</body>
</html>