项目积累——综合

sql += "  and HT_CGFKSQ.sqsj >=to_date(‘"+kssj+"‘,‘yyyy-MM-dd‘)";

java.sql.Date.valueOf(qjdpo.getKssjStr())

String nowRq = new SimpleDateFormat("yyyy-MM-dd")

.format(new java.util.Date());// 当前的日期

public void addFksqxx(CghtfksqPO cghtfksqPO)throws DataAccessException, SQLException {

if (cghtfksqPO == null) {

throw new IllegalArgumentException(cghtfksqPO + "对象不能为空!");

}

pstmt.setDate(1, java.sql.Date.valueOf(cghtfksqPO.getFksjStr()));

pstmt.setDouble(2, Double.parseDouble(cghtfksqPO.getFkjeStr()));

pstmt.setString(3, cghtfksqPO.getSqr());

pstmt.setDate(4,java.sql.Date.valueOf(nowRq));

pstmt.setString(5, htbh);

//         pstmt.setDate(6, java.sql.Date.valueOf(fksj));

pstmt.execute();

TransactionManager.commitTransaction();

注意不能直接使用form表单的reset方法进行处理,而应该以如下方式进行调用,

Document.form[…].validatorGroup.reset();

<%@ page isELIgnored="false"%>在页面中启用EL表达式

利用Iterator实现对List的循环遍历:

List<String> all=new ArrayList<String>();

all.add("Hello");

all.add(" World !");

Iterator<String> it=all.iterator();

while (it.hasNext()) {

System.out.print(it.next());

}

Int和string类型转换

int lsh

ps.setString(1, String.valueOf(lsh));

String optionId=Integer.valueOf(questOption.getId()).toString();

int pictureId=Integer.parseInt(request.getParameter("pictureId"));

pages = String.valueOf(pagesDefault);

(new Integer(pages)).intValue()

rows = StringUtil.trim(rows);

替换

nr.replaceAll("___", zzrq)

解决乱码问题

xmz = java.net.URLDecoder.decode(request.getParameter("xmz"),"UTF-8");

response.setContentType("text/text;charset=UTF-8");

 

页面业务逻辑处理,绕过Actionform

<body>

<%

/****根据主页面传过来员工号获取该员工对应的信息****/

String ygdh = request.getParameter("ygdh");

YgzhxxcxDAO yd = YgfwDAOFactory.getYgfwDAOFactory()

.getYgzhxxcxDAO();

try {

//成绩查询结果List

List<KsScorePO> ksScoreList = yd.cjxx(ygdh);

request.setAttribute("ksList", ksScoreList);

} catch (Exception e) {

//若存在异常,打印输出异常

out.print(e.getMessage());

}

%>

<logic:notEmpty name="ksList">

<logic:iterate name="ksList" id="po">

<tr>

<td nowrap="nowrap" style="text-align: left">

<bean:write name="po" property="ksmc" />

</td>

StringBuffer scores = new StringBuffer();

while(rs1.next()){

scores.append(String.format("%.2f", rs1.getDouble(1))).append("M");

}

if(scores.length() > 1){

scores.deleteCharAt(scores.length() - 1);

}

po.setSjbp_dthsStr(String.valueOf(rs0.getInt(2)));   //答题时间

 

po.setSjbp_jjsjStr(String.valueOf(rs0.getDate(4)));  //交卷时间

po.setKssj(String.valueOf(rs0.getTimestamp(6)));//开考时间

po.setDbfs(String.format("%.2f", Double.parseDouble(rs0.getInt(7)+"")));//达标分数

public String getKshs(String kshs) {

int dths = Integer.parseInt(kshs);

int minutes = (dths - (3600 * hours)) / 60;

if (minutes > 0) {

if (String.valueOf(minutes).length() == 1) {

minute = "0" + minutes + "分";

} else {

minute = minutes + "分";

}

Struts将MVC的Controller一分为三。

在Struts中,将常规情况下的Servlet拆分为ActionServlet、FormBean、ActionBean三个部分。

ActionServlet配合Struts-config.xml,专职完成页面导航,而不再负责具体的数据获取与相应逻辑,这两部分功能由FormBean和ActionBean来完成。

将资源文件中的中文转变成ASCII码:命令

¡  Native2ascii –encoding gbk applicationResource_zh_CN.properties

一个应用系统的消息转移(或者说状态转移)的非持久性数据存储,是由ActionForm Bean的负责保持的。

NumberFormatException//(数据转换异常)数据转换时处理异常用

if (new java.util.Date().getTime() - rs.getDate("qjd_jssj").getTime() <= 24 * 60 * 60

* 1000 * 5 && "3".equals(rs.getString("qjd_spzt"))) {

po.setXjbz1("1");

}

ajax处理后台乱码

PrintWriter pw = null;

response.setContentType("text/text;charset=UTF-8");// /ajax处理后台乱码

   

sb.append(sb1.toString() + sb2.toString() + sb3.toString());

从后台向前台拼html标签

1.前台jsp获取后台传过来的标签字符串

<%

if(request.getAttribute("str") != null){

out.print(request.getAttribute("str").toString());

}

%>

2、后台拼接

sb.append(sb1.toString() + sb2.toString() + sb3.toString());

request.setAttribute("str", sb.toString());

EL表达式:

${xsstForm.nd}

 

循环中实现某一项的累积:

list = gzlfltjcxBO.gzlxxmcxlist(zzjgbh, ksrq, jsrq, xmbh);

for (int i = 0; i < list.size(); i++) {

gzzl = gzzl + Float.valueOf(list.get(i).getGzl());

}

for (int i = 0; i < list.size(); i++) {

list.get(i).setGzlbl(

Float.valueOf(list.get(i).getGzl()) / gzzl);

}

request.setAttribute("gzlxlist", list);

kqxxclfkListForm.setYf(month < 10? "0" + month: month + "");

 

if(kqxxclfkPOList.isEmpty())

 

DataAccessException, SQLException, ParseException

 

String start = year + "-" + month + "-01";

String end = DateFormatUtil.getMonthL(start);

day = rs.getDate("rq").toString().substring(8,10);

 

public String getZtmc(String ztdh,String all){

String[] dhAndMc = all.split("_");

int dh = dhAndMc[0].indexOf(ztdh);

return (dhAndMc[1].split(","))[dh];

}

//小数点型数据计算

/**

* 提供精确的乘法运算

*

* @param v1

*            被乘数

* @param v2

*            乘数

* @return 两个参数的积

*/

public double mul(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.multiply(b2).doubleValue();

}

调用处:10000

xsdzprywhPO.setJhrw(String.format("%.2f", mul(rs.getDouble("jhrw"), 0.0001)));

结果为:1

 

//获取登录用户

RBACRequestContext rbacRequest = WebRBACRequestContext .getRBACRequestContext(request);

User user = rbacRequest.getRequestUser();// 获取当前登陆用户

String loginName = user.getLoginName();// 登陆人的名字

/**

* 金额转人民币大写

*

* @param n

* @return String

*/

public static String digitUppercase(double n) {

String fraction[] = { "角", "分" };

String digit[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };

String unit[][] = { { "元", "万", "亿" }, { "", "拾", "佰", "仟" } };

n = Math.abs(n);

String s = "";

double frac = 0;

/**拼接角分值,实现小数部分的转化*/

for (int i = 0; i < 2; i++) {

if (i == 0) {

//取角,下取整

frac = Math.floor(n * 10) % 10;

} else if (i == 1) {

//取分,下取整,*100时会产生精度问题,所以调用了mul()方法

frac = Math.floor(mul(n,100)) % 10;

}

//拼接大写和单位

s += digit[(int) frac] + fraction[i];

s = s.replaceAll("(零.)+", "");

}

//没有零头时

if (s.length() < 1) {

s = "整";

}

//获取整数部分

int integerPart = (int) Math.floor(n);

for (int i = 0; i < unit[0].length && integerPart > 0; i++) {

String p = "";

for (int j = 0; j < unit[1].length && n > 0; j++) {

p = digit[integerPart % 10] + unit[1][j] + p;

integerPart = integerPart / 10;

}

s = p.replaceAll("(零.)*零$", "").replaceAll("^$", "零") + unit[0][i]

+ s;

}

//s = s.replaceAll("(零.)*零元", "元");

while(s.matches("^零.*")){

s = s.replaceAll("^零.", "");//字符串计算去掉开头的零字,或零仟零佰等

}

s = s.replaceAll("(零.)+", "零");//字符串中出现类似:零什,零佰等的情况,将“零什”替换成“零”字

s = s.replaceAll("^整$", "零元整");//字符串中只有一个“整”字的情况,将整个字符串替换为“零元整”

s = s.replaceAll("零整$", "元整");//解决当金额超过一万时的零整问题

return s;

}

/**

* 提供精确的乘法运算。

* @param v1 被乘数

* @param v2 乘数

* @return 两个参数的积

*/

public static double mul(double v1,double v2){

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.multiply(b2).doubleValue();

}

//获取目录路径

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

List<XsrwzbjhwhPO> jp = new ArrayList<XsrwzbjhwhPO>();

ThglDAO dao = new ThglDAO();

jp = dao.getXsry();

<%=jp.get(i).getYgname().trim()%>

 

//根据日期获取要考勤的年月,如果是1月份,则取上一年的12月份考勤数据

if (calendar.get(Calendar.MONTH) == 0) {

kqshnd = calendar.get(Calendar.YEAR) - 1 + "";

kqshyd = "12";

} else {

kqshnd = calendar.get(Calendar.YEAR) + "";

if (calendar.get(Calendar.MONTH) < 10) {

kqshyd = "0" + calendar.get(Calendar.MONTH);

} else {

kqshyd = calendar.get(Calendar.MONTH) + "";

}

}

grjkglPO.setCjsj(rs.getDate("Jhk_cjsj") + " "

+ rs.getTime("Jhk_cjsj").toString())

String gzrq =

baseGzjlrzpPO.setGzrq(Date.valueOf(gzrq));

 

String tjsj = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date());

baseGzjlrzpPO.setTjsj(Timestamp.valueOf(tjsj));

 

//合并行显示

// 声明过程活动的集合,将不同的过程活动放入该集合

List<String> gchdxs = new ArrayList<String>();

gchdxs.add(xmydygcPOList.get(0).getGcmc());

// 循环将不同的过程活动放入该集合

for (int i = 0; i < xmydygcPOList.size(); i++) {

if (!gchdxs.contains(xmydygcPOList.get(i).getGcmc())) {

gchdxs.add(xmydygcPOList.get(i).getGcmc());

}

}

/* 使每个过程对应多个结果list以便于合并单元格显示 */

for (int m = 0; m < gchdxs.size(); m++) {

// 过程活动

String gchdx = gchdxs.get(m);

/* 将过程活动相同的记录放入同一个list */

for (int i = 0; i < xmydygcPOList.size(); i++) {

if (gchdx.equals(xmydygcPOList.get(i).getGcmc())) {

zjList.add(xmydygcPOList.get(i));

fl = xmydygcPOList.get(i).getFl();

}

}

XmydygcPO xmydygcPO = new XmydygcPO();

// xmydygcPO.setGchdx(gchdx);

xmydygcPO.setGcmc(gchdx);

xmydygcPO.setCount(zjList.size());

xmydygcPO.setGchdList(zjList);

xmydygcPO.setFl(fl);

// 一个过程活动对应一个剪裁申请List【包含该过程活动对应的多条剪裁申请记录】

// 将结果放入要返回的returnList

returnList.add(xmydygcPO);

zjList = new ArrayList<XmydygcPO>();

}

 

 

 

String xmbh = java.net.URLDecoder.decode(request.getParameter("xmbh"),"UTF-8").trim();//从前台获取输入的项目编号

 

for (FxjhPO po :fxjhPOList) {

 

 

catch (SQLException e) {

// 操作失败时给出用户提示

this.printSuccess(request, "",

"com.cvicse.cvicdns.common.noQueryList");

String exStr=String.valueOf(e.getMessage());

if ("0".equals(exStr)) {

message="保存失败,您修改或删除的记录已被使用!";

}else {

e.printStackTrace();

super.exceptionOperate(request, XmcszdwhAction.class, e, operFlag);

}

 

//查询根目录:返回类似 /cvicdns

String path = request.getContextPath();

//List中的属性赋值

for(XmzlkpPO po:xmzlkpPOList){

if(po.getKpzb().equals(kpzb_mc)){//存在相应的考评指标名称

po.setSjdf(zlkp_sjdf);//设置实际得分

po.setSm(zlkp_sm);//设置实际得分说明

}

}

//字符串以指定的字符串开头

gs.startsWith("$sql:")

Pattern pattern =  Pattern.compile("[^\\{]*[\\}$]"); //正则表达式匹配格式???

      Matcher matcher = pattern.matcher(gs);

      while(matcher.find()){

        String srcStr = matcher.group();//找到匹配的子串

        csList.add(srcStr.substring(0,srcStr.length()-1));//将匹配的结果放入List,并把子串最后的右括号去掉

      }

//直接为List赋值

for (int i = 0; i < csList.size(); i++) {

if (!csList2.contains(csList.get(i))) {

csList2.add(csList.get(i));

}

}

 

 

 

//字符串转变成字符数组

char[] arr = str.toCharArray();

//文件流、比特流、String之间的转换

//将file变成 byte

public static byte[] getBytesFromFile(File f) {

if (f == null) {

return null;

}

try {

FileInputStream stream = new FileInputStream(f);

ByteArrayOutputStream out = new ByteArrayOutputStream(1000);

byte[] b = new byte[1000];

int n;

while ((n = stream.read(b)) != -1)

out.write(b, 0, n);

stream.close();

out.close();

return out.toByteArray();

} catch (IOException e) {

}

return null;

}

//将byte变成file

public  File getFileFromBytes(byte[] b, String outputFile) {

BufferedOutputStream stream = null;

File file = null;

try {

file = new File(outputFile);

FileOutputStream fstream = new FileOutputStream(file);

stream = new BufferedOutputStream(fstream);

stream.write(b);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (stream != null) {

try {

stream.close();

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

return file;

}

//将inputStream变成byte

public  byte[] InputStreamTOByte(InputStream in) throws IOException{

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] data = new byte[BUFFER_SIZE];

int count = -1;

while((count = in.read(data,0,BUFFER_SIZE)) != -1)

outStream.write(data, 0, count);

data = null;

return outStream.toByteArray();

}

//将byte变成inputStream

public  InputStream byteTOInputStream(byte[] in) throws Exception{

ByteArrayInputStream is = new ByteArrayInputStream(in);

return is;

}

/**

* 普通方法加密

* @return

*/

public  String addNormalSecurity(String str){

String result = "";

char[] arr = str.toCharArray();

for(int i =0; i < arr.length; i ++){

arr[i] = (char) (arr[i] ^ ‘t‘);

}

result = new String(arr);

return result;

}

/**

* 解密普通方法的加密

* @return

*/

public String unAddNormalSecurity(String str){

String result = "";

char[] arr = str.toCharArray();

for(int i =0; i < arr.length; i ++){

arr[i] = (char) (arr[i] ^ ‘t‘);

}

result = new String(arr);

return result;

}

//inputStream 变成 string

public String InputStreamTOString(InputStream in) throws Exception{

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] data = new byte[BUFFER_SIZE];

int count = -1;

while((count = in.read(data,0,BUFFER_SIZE)) != -1)

outStream.write(data, 0, count);

data = null;

return new String(outStream.toByteArray(),"ISO-8859-1");

}

//string 变成 inputStream

public InputStream StringTOInputStream(String in) throws Exception{

ByteArrayInputStream is = new ByteArrayInputStream(in.getBytes("ISO-8859-1"));

return is;

}

//byte 变成 string

public  String byteTOString(byte[] in) throws Exception{

InputStream is = byteTOInputStream(in);

return InputStreamTOString(is);

}

 

//异步请求

$.ajax({

type:"POST",

async:false,

url:"/cvicdns/xm_xmgl/ztbgLyxgf.do?operFlag=audit",

data:{lylsh:lsh,inid:inid},

success:function(data){

yl=data;

}

});

if(yl=="1"){

alert("有与之关联的关键依赖,不允许删除!");

return;

}

//List排序

/**

* 集合排序

*

* @param xsyjcxPOList

* @param property    为XsyjcxPO中的一个属性

* @param isAsc

* @return

*/

public List<XsyjcxPO> sortList(List<XsyjcxPO> xsyjcxPOList, String property, boolean isAsc) {

Comparator beanComparator = new BeanComparator(property);

Comparator reComparator = new ComparatorChain(beanComparator, !isAsc);

Collections.sort(xsyjcxPOList, reComparator);

return xsyjcxPOList;

}

//判断字符串以XXX开头

String fname = rs.getString("fname");

if (fname.startsWith("特殊费用额度批准附件_") && "tsfy".equals(fjlb)) {}

//通过URL获取上传文件名

1、jsp 前台

$.post(url,{operFlag:‘isExist‘,inid:$("#inid").val(),fjmc:encodeURI($("#xmjhbgFile").val()),fjlb:‘bgfj‘,bgdbh:$("#bgdbh").val()},function(data){}

2、java后台

// 附件名称

String fjmc = java.net.URLDecoder.decode(request

.getParameter("fjmc"), "utf-8");

int i = fjmc.lastIndexOf("\\");

fjmc = fjmc.substring(i + 1);

时间: 2024-11-05 22:03:17

项目积累——综合的相关文章

项目积累(二)细节问题,提高用户体验

前两天和同事讨论公司系统一个身份证录入文本框,发现还有一个要录入年龄的文本框,都感觉挺麻烦的.其实当录入身份证号后,年龄就是固定的,想到这就动手写jQuery来改进系统,提高用户体验. 首先,身份证从第七位开始时年龄段,如:410223199910210000,这样,就获取身份证的从第七位开始和接下来的八位.在获取当前时间,相减获取年龄.这样 做还是不是准确的,还要考虑月份和具体每天.代码如下: 1 var nowDate = new Date(); 2 var month = nowDate.

项目积累——Blockingqueue,ConcurrentLinkedQueue,Executors

背景 通过做下面一个小的接口系统gate,了解一下mina和java并发包里的东西.A系统为javaweb项目,B为C语言项目,gate是本篇需要完成的系统. 需求 1. A为集群系统,并发较高,会批量发送给gate消息,并且接受gate返回的消息: 2. gate独立部署,将从A接受到的消息压入队列,与B建立连接后,将每条消息验证签名等工作后,发送给B,需要保证性能: 3. B负责处理消息,并返回处理结果,B为gate提供提供六个端口,一个端口可有三个长连接(须由gate发送心跳保持长连接,否

项目积累——Mina

继续上一篇,这篇主要讲通过mina往B端发送消息,并接受消息,mina是一个网络通信框架,封装了javaNIO,简单易用,网上有很多关于他的介绍,在此不赘述了. 如上篇所介绍,完成功能,需要五个类: PoolListener:监听,用来在系统启动的时候创建连接: SessionPool:连接池: SendHandler:处理类: CharsetEncoder:编码: CharsetDecoder:解码: B为我们提供了6个端口,每个端口可建立3个长连接,因此,在系统时,就要创建长连接,下面是一个

2014秋C++ 第10周项目 控制结构综合、C程序结构及输入输出

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看. [项目1:程序填充与阅读]云学堂中有完整的代码,不必再费力亲自输入:1.阅读下面的程序,在____上填上合适的成份,使程序能够输入"1+2"形式的式子,并输出相应的结果. #include <iostream> using namespace std; int

【项目积累】对JSON数据的处理

[项目简述]     接触.NET项目非常长一段时间了,前台用的都是MVC框架.不知道大家是否想过一个问题.我们是怎样将数据显示到前台的,换句话说,MVC能够识别怎么样的数据形式?答案非常easy,就是JSON数据.不太记得的,最好还是找段代码看看.我们须要将数据显示到前台.一定会返回JSON类型的数据. [博客概要] 眼下为止,JSON的应用我们都不陌生了. 但对于JSON的一些理论知识,你真正知道吗?或者说,你在项目调试的时候.以前有在前台alert过一个JSON串吗?有看过JSON串的内容

项目积累(三)CSS

公司不是专门做网站的,偶尔会接到客户让修改前端,有时候和让头疼,自己浏览器兼容问题处理不好. 慢慢积累吧. 先贴出来一些前端代码吧,如下: 1 <div class="test"> 2 <form id="Form1" runat="server"> 3 <span>请输入内容:</span> 4 <asp:TextBox ID="txtCode" runat="

项目积累html标签

今天遇到一个不太常用都标签,网上以后慢慢记下项目中用到都东西. 1.<em> 标签 告诉浏览器把其中的文本表示为强调的内容.对于所有浏览器来说,这意味着要把这段文字用斜体来显示. 在文本中加入强调也需要有技巧.如果强调太多,有些重要的短语就会被漏掉:如果强调太少,就无法真正突出重要的部分.这与调味品一样,最好还是不要滥用强调. 尽管现在 <em> 标签修饰的内容都是用斜体字来显示,但这些内容也具有更广泛的含义,将来的某一天,浏览器也可能会使用其他的特殊效果来显示强调的文本.如果你只

项目积累——数据连接配置文件

<!-- Jdbc方式连接Infor数据库,连接的数据库为hr --> <entry key="jdbc.infor"> <bean class="com.cvicse.commons.datasource.jdbc.JDBCDataSourceConfig"> <!--描述数据资源的共享模式,目前提供 Global,ThreadLocal,InheritableThreadLocal 三种模式 Global 所有的请求都使

项目积累——JAVA知识积累

调用天气: <iframe src="http://www.thinkpage.cn/weather/weather.aspx?uid=&c=CHXX0008&l=zh-CHS&p=CMA&a=1&u=C&s=1&m=1&x=1&d=2&fc=&bgc=&bc=&ti=1&in=1&li=2&ct=iframe" frameborder="0&