利用xml+xsl快速生成大量JSP的常用代码的方法.
参考Jbuilder的Servlet向导来使用xml+xsl产生JSP的常用代码。
xml样本:
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="jspram.xsl"?>
<jsp xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="jspsrcgen.xsd">
<param>
<variable>rloginusername</variable>
<name>loginusername</name>
<type>String</type>
<src>request</src>
<default>lizongbo</default>
<desc>用户的登录名</desc>
</param>
<param>
<variable>clastlogintime</variable>
<name>lastlogintime</name>
<type>long</type>
<src>cookie</src>
<default>0</default>
<desc>用户最近一次的登录时间</desc>
</param>
<param>
<variable>suserpass</variable>
<name>userpass</name>
<type>String</type>
<src>session</src>
<default>password</default>
<desc>存放在session里的密码</desc>
</param>
</jsp>
<?xml-stylesheet type="text/xsl" href="jspram.xsl"?>
<jsp xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="jspsrcgen.xsd">
<param>
<variable>rloginusername</variable>
<name>loginusername</name>
<type>String</type>
<src>request</src>
<default>lizongbo</default>
<desc>用户的登录名</desc>
</param>
<param>
<variable>clastlogintime</variable>
<name>lastlogintime</name>
<type>long</type>
<src>cookie</src>
<default>0</default>
<desc>用户最近一次的登录时间</desc>
</param>
<param>
<variable>suserpass</variable>
<name>userpass</name>
<type>String</type>
<src>session</src>
<default>password</default>
<desc>存放在session里的密码</desc>
</param>
</jsp>
xsl文件略。
转换后的效果图和相关代码:
testjsp.jsp
变量名字 | 参数名字 | 变量类型 | 变量来源 | 默认值 | 备注 |
rloginusername | loginusername | String | request | lizongbo | 用户的登录名 |
rloginusername | loginusername | String | request | lizongbo | 用户的登录名 |
rloginusername | loginusername | String | request | lizongbo | 用户的登录名 |
suserpass | userpass | String | session | password | 存放在session里的密码 |
suserpass | userpass | String | session | password | 存放在session里的密码 |
suserpass | userpass | String | session | password | 存放在session里的密码 |
clastlogintime | lastlogintime | long | cookie | 0 | 用户最近一次的登录时间 |
clastlogintime | lastlogintime | long | cookie | 0 | 用户最近一次的登录时间 |
clastlogintime | lastlogintime | long | cookie | 0 | 用户最近一次的登录时间 |
生成好的java代码:
<%@page import="com.lizongbo.util.JSPUtil"%> |
//用户的登录名 |
String rloginusername = JSPUtil. getParameter(request,"loginusername",lizongbo); |
//用户的登录名 |
String rloginusername = JSPUtil. getParameter(request,"loginusername",lizongbo); |
//用户的登录名 |
String rloginusername = JSPUtil. getParameter(request,"loginusername",lizongbo); |
//存放在session里的密码 |
String suserpass = JSPUtil.getAttribute(session,"userpass",password); |
//存放在session里的密码 |
String suserpass = JSPUtil.getAttribute(session,"userpass",password); |
//存放在session里的密码 |
String suserpass = JSPUtil.getAttribute(session,"userpass",password); |
//用户最近一次的登录时间 |
long clastlogintime = JSPUtil. getValue(request.getCookies(),"lastlogintime",0); |
//用户最近一次的登录时间 |
long clastlogintime = JSPUtil. getValue(request.getCookies(),"lastlogintime",0); |
//用户最近一次的登录时间 |
long clastlogintime = JSPUtil. getValue(request.getCookies(),"lastlogintime",0); |
我封装的JSPUtil代码片断:
public static string getparameter(httpservletrequest request, string name,
string defval) {
string param = request.getparameter(name);
return (param != null ? param : defval);
}
public static boolean getparameter(httpservletrequest request, string name,
boolean defval) {
string bv = request.getparameter(name);
return bv == null ? defval : parseboolean(bv);
}
public static double getparameter(httpservletrequest request, string name,
double defval) {
return parsedouble(request.getparameter(name), defval);
}
public static float getparameter(httpservletrequest request, string name,
float defval) {
return parsefloat(request.getparameter(name), defval);
}
public static int getparameter(httpservletrequest request, string name,
int defval) {
return parseint(request.getparameter(name), defval);
}
public static long getparameter(httpservletrequest request, string name,
long defval) {
return parselong(request.getparameter(name), defval);
}
public static short getparameter(httpservletrequest request, string name,
short defval) {
return parseshort(request.getparameter(name), defval);
}