functag.java~7~
来自「采用web2.0技术,采用动态标签,sql语句全部存储在数据库里面.开发速度快.」· JAVA~7~ 代码 · 共 315 行
JAVA~7~
315 行
package com.sztheater.web.taglib;
import java.text.DateFormat;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
import java.util.*;
import javax.servlet.http.*;
import com.sztheater.framework.util.*;
public class FuncTag{
public static Object getObject(Object objValue,String s_item) {
System.out.println("FuncTag getObject!");
int iPos = 0;
String para_name = null;
String class_name = null;
Object vObj = null;
int iIndex = 0;
int iSize = 0;
boolean bFind = false;
boolean bExists = false;
if(objValue==null || s_item ==null ) return objValue;
s_item = s_item.trim();
if(s_item.trim().equals("")) return objValue;
class_name = objValue.getClass().getName();
if(class_name.equals("java.lang.String")) return objValue;
vObj = null;
iPos = s_item.indexOf(".");
if(iPos>-1){
para_name = s_item.substring(0 , iPos);
s_item = s_item.substring(iPos + 1);
}else{
para_name = s_item;
s_item = "";
}
if(class_name.indexOf("HttpServletRequest")>-1){
HttpServletRequest request = (HttpServletRequest)objValue;
vObj = request.getAttribute(para_name);
if(vObj==null) vObj = request.getParameter(para_name);
if(s_item.equals("")) return vObj;
bFind = true;
}
if(class_name.indexOf("PageContextImpl")>-1){
PageContext pc = (PageContext)objValue;
vObj = pc.getRequest().getAttribute(para_name);
if(vObj==null) vObj = pc.getRequest().getParameter(para_name);
if(s_item.equals("")) return vObj;
bFind = true;
}
if(class_name.equals("com.sztheater.framework.util.ValueObject")){
ValueObject valueObj = (ValueObject)objValue;
if(para_name.equals("func_id")){
return valueObj.getFuncID();
}
if(para_name.equals("action_id")){
return valueObj.getActionID();
}
vObj = null;
if(para_name.equals("page")){
vObj = valueObj.getPage();
bExists = true;
}
if(para_name.equals("dataset")){
vObj = valueObj.getResultSet();
bExists = true;
}
if(para_name.equals("param")){
vObj = valueObj.getParam();
bExists = true;
}
if(para_name.equals("user")){
vObj = valueObj.getUser();
bExists = true;
}
if(para_name.equals("message")){
vObj = valueObj.getMessage();
bExists = true;
}
if(para_name.equals("exception")){
vObj = valueObj.getException();
bExists = true;
}
if(para_name.equals("trace")){
vObj = valueObj.getTrace();
bExists = true;
}
bFind = true;
if(s_item.equals("")) return vObj;
}
if(class_name.equals("java.util.ArrayList")){
ArrayList aList = (ArrayList)objValue;
iSize = aList.size();
iIndex = 0;
try{
iIndex = Integer.parseInt(para_name);
}catch(Exception e){
}
if(iSize<1 || iIndex<0 || iIndex>=iSize) return null;
vObj = aList.get(iIndex);
bFind = true;
if(s_item.equals("")) return vObj;
}
if(class_name.equals("java.util.HashMap")){
HashMap aHash = (HashMap)objValue;
iSize = aHash.size();
if(iSize<1) return null;
vObj = aHash.get(para_name);
bFind = true;
if(s_item.equals("")) return vObj;
}
if(class_name.equals("java.util.Hashtable")){
Hashtable bHash = (Hashtable)objValue;
iSize = bHash.size();
if(iSize<1) return null;
vObj = bHash.get(para_name);
bFind = true;
if(s_item.equals("")) return vObj;
}
if(!bFind) return null;
return getObject(vObj,s_item);
}
/**
* 通过取得下拉框的HTML代码
* @param aList ArrayList 数据列表
* @param value String 当前下拉的值
* @param EmptyValue String 为空的时候的值
* @param f_value String 真实值字段名
* @param f_disp String 显示值字段名
* @param bMerge boolean 合并标志
*/
public static String getComboboxHTML(ArrayList aList,String value,String EmptyValue,String f_value,String f_disp,boolean bMerge){
//入参检验
if(f_disp ==null || f_disp.trim().equals ("")) return "";
if(f_value==null || f_value.trim().equals("")) return "";
f_value = f_value.trim();
f_disp = f_disp.trim ();
StringBuffer sbHTML = new StringBuffer("");
String strHTML = "";
int iLoop = 0 ;
int iLoopNum = 0;
HashMap aHash = null;
Object obj = null;
if(EmptyValue!=null) sbHTML.append("<option value=''>"+EmptyValue+"</option>\n");
if(aList!=null) iLoopNum = aList.size();
String s_disp = null;
String s_value = null;
for(iLoop=0;iLoop<iLoopNum;iLoop++){
obj = aList.get(iLoop);
if(obj==null || !obj.getClass().getName().equals("java.util.HashMap")) continue;
aHash = (HashMap) obj;
s_disp = (String)aHash.get(f_disp);
s_value = (String)aHash.get(f_value);
if(s_value==null) continue;
if(s_disp ==null) s_disp = "";
sbHTML.append("<option value=\""+s_value+"\" ");
Iterator it = aHash.keySet().iterator();
while(it!=null && it.hasNext()){
String keyObj = (String)it.next();
String valueObj= (String)aHash.get(keyObj);
if(keyObj==null || valueObj==null || keyObj.equals("ROW_ID"))continue;
if(keyObj.equals(f_disp) || keyObj.equals(f_value)) continue;
sbHTML.append( keyObj +" = \"" + valueObj + "\"");
}
if(s_value.equals(value) || s_disp.equals(value)) sbHTML.append(" selected ");
if(bMerge) s_disp = s_value+" "+s_disp;
sbHTML.append(" >"+s_disp+"</option>\n");
}
strHTML = sbHTML.toString();
sbHTML.delete(0,sbHTML.length());
sbHTML = null;
return strHTML;
}
/**
* 通过服务来取得下拉列表的数据信息
* @param pc PageContext 标签基本属性
* @param action String 服务名称
* @param servType String 服务类型
* @param formerPara String 前置参数
*/
public static ArrayList getStaticItems(PageContext pc,String func_id, String action,HashMap hashCond,boolean bTrace){
if( func_id==null || func_id.trim().equals("")) return null;
if( action ==null || action.trim().equals ("")) action = "select";
int iSuccFlag = 0;
HttpSession httpSession = null;
ValueObject recvPack = new ValueObject();
ValueObject sendPack = new ValueObject();
String data_set = "data_list";
HashMap hashUser = null;
Object obj = null;
try{
sendPack.setFuncID (func_id );
sendPack.setActionID(action );
if(hashCond!=null && hashCond.size()>0){
recvPack.putParam(hashCond);
}
//用户信息
httpSession = pc.getSession();
obj = httpSession.getAttribute("userinfo");
if(obj!=null && obj.getClass().getName().equals("java.util.HashMap")) {
hashUser = (HashMap)obj;
sendPack.setUser(hashUser);
}
if(bTrace) recvPack.setTrace(true);
//执行数据库中对应的SQL语句
// iSuccFlag = SysCall.execute(null,sendPack,recvPack);
if(iSuccFlag<0) {
System.out.println(sendPack.getMessage());
return null;
}
data_set = func_id.trim().toLowerCase();
if( func_id.equals("DICT") || action.equals("psql")) data_set = "data_list";
return recvPack.getDataSet(data_set);
}catch(Exception e){
System.out.println("取得静态字典异常:"+e.getMessage());
}finally{
sendPack.free();
recvPack.free();
sendPack = null;
recvPack = null;
}
return null;
}
public static void getRequestParameters(PageContext pc,HashMap hashPara,
String paraNames,String noUsedNames){
if(hashPara==null || pc==null) return ;
Enumeration keys = null;
keys = pc.getRequest().getParameterNames();
String paraName = null;
String paraValue= null;
String para_name = null;
if(paraNames ==null) paraNames = "";
if(noUsedNames==null) noUsedNames = "";
paraNames = paraNames.trim().toLowerCase();
noUsedNames = noUsedNames.trim().toLowerCase();
if(!paraNames.equals ("")) paraNames = ";" + paraNames + ";";
if(!noUsedNames.equals("")) noUsedNames = ";" + noUsedNames + ";";
while(keys!=null && keys.hasMoreElements()){
paraName = (String ) keys.nextElement();
if(paraName==null) continue;
paraValue= pc.getRequest().getParameter(paraName);
if(paraValue==null) continue;
if(paraName ==null || paraName.trim().equals("")) continue;
if(paraValue==null || paraValue.trim().equals("")) continue;
para_name = paraName.trim().toLowerCase();
if(!paraNames.equals ("") && paraNames.indexOf (";"+para_name+";")< 0) continue;
if(!noUsedNames.equals("") && noUsedNames.indexOf(";"+para_name+";")>-1) continue;
if(hashPara==null) hashPara = new HashMap();
hashPara.put(paraName,paraValue);
}
}
public static boolean judgeNoEmpty(HashMap aHash,String sNoEmpty) {
ArrayList aList = CommFunc.getListFromStr(sNoEmpty);
if(aList==null ) return true;
int iLoop = 0;
int iLoopNum=aList.size();
boolean bExist = true;
for(iLoop=0;iLoop<iLoopNum;iLoop++){
String keyName = (String)aList.get(iLoop);
if(keyName==null) continue;
keyName = keyName.trim().toLowerCase();
if(keyName.equals("")) continue;
if(aHash==null || !aHash.containsKey(keyName)) {
bExist = false;
break;
}
}
CommFunc.freeObj(aList);
return bExist;
}
public static HashMap getValues(String str){
if(str==null) return null;
HashMap aHash = null;
int iPos1 = 0;
int iPos = 0;
String f_name = null;
String f_value=null;
str = "`" + str;
while(!str.equals("")){
iPos = str.indexOf("`");
if(iPos<0) {
f_name = str;
str = "";
}else{
f_name = str.substring(0,iPos);
str = str.substring( iPos+1 );
}
iPos = f_name.indexOf("=");
if(iPos<0 || f_name.trim().equals("")) continue;
f_value= f_name.substring(iPos+1);
f_name = f_name.substring(0,iPos);
f_name = f_name.trim().toLowerCase();
if(aHash==null) aHash = new HashMap();
aHash.put(f_name , f_value);
}
return aHash;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?