a级亚洲片精品久久久久久久 ,亚洲精品人成无码中文毛片 ,亚洲精品国产自在久久http://m.tkk7.com/17learning/category/48640.html我的博客:http://blog.sina.com.cn/17learningzh-cnWed, 09 Sep 2020 14:31:15 GMTWed, 09 Sep 2020 14:31:15 GMT60遞歸構建樹http://m.tkk7.com/17learning/archive/2020/09/07/435656.html管先飛管先飛Mon, 07 Sep 2020 01:56:00 GMThttp://m.tkk7.com/17learning/archive/2020/09/07/435656.htmlhttp://m.tkk7.com/17learning/comments/435656.htmlhttp://m.tkk7.com/17learning/archive/2020/09/07/435656.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/435656.htmlhttp://m.tkk7.com/17learning/services/trackbacks/435656.html
createTree(1, orgNodeTree, sameOrgNodes, 0);


@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class NodeTree {
private String pName;
private String name;
private int level;
private List<NodeTree> children;
}

private void createTree(int leave, int ind, Map<String, NodeTree> pIndexNodeNameMap, List<NodeVo> childNodes) {
Map<String, NodeTree> cIndexNodeNameMap = new HashMap();
//構建樹
int treeNo = pIndexNodeNameMap.size();
if (treeNo == 0) {
return;
}
int group = 0;
for (int i = ind; i < childNodes.size(); i++) {
NodeVo node = childNodes.get(i);
long index = node.getId() % treeNo;
NodeTree pNode = pIndexNodeNameMap.get(index + "");
List<NodeTree> children = pNode.getChildren();
if (CollectionUtils.isEmpty(children)) {
children = new ArrayList();
}
if (children.size() > 2) {
leave++;
createTree(leave, i, cIndexNodeNameMap, childNodes);
break;
} else {
NodeTree child = new NodeTree();
child.setLevel(leave);
child.setPName(pNode.getName());
child.setName(node.getNodeName());
children.add(child);
pNode.setChildren(children);
cIndexNodeNameMap.put(group + "", child);
group++;
}
}
}


private boolean createTree(int level, List<NodeTree> parentNodes, List<NodeVo> childNodes, int beginIndex) {
//構建樹
List<NodeTree> nextLevelNodes = new ArrayList<>();
for (int i = beginIndex; i < childNodes.size(); i++) {
int parentCount = 1;
for (NodeTree pNode : parentNodes) {
List<NodeTree> children = pNode.getChildren();
if (CollectionUtils.isEmpty(children)) {
children = new ArrayList();
pNode.setChildren(children);
}
if (children.size() >= 3) {
if(parentCount >= parentNodes.size()){
return createTree(++level, nextLevelNodes, childNodes, beginIndex);
}
} else {
if (beginIndex >= childNodes.size()) {
return true;
}
NodeTree child = new NodeTree();
child.setLevel(level);
child.setPName(pNode.getName());
NodeVo node = childNodes.get(beginIndex);
child.setName(node.getNodeName());
pNode.getChildren().add(child);
nextLevelNodes.add(child);
beginIndex++;
}
parentCount++;
}
}
return true;
}


管先飛 2020-09-07 09:56 發(fā)表評論
]]>
Java自定義注解簡單入門http://m.tkk7.com/17learning/archive/2016/08/18/431631.html管先飛管先飛Thu, 18 Aug 2016 12:42:00 GMThttp://m.tkk7.com/17learning/archive/2016/08/18/431631.htmlhttp://m.tkk7.com/17learning/comments/431631.htmlhttp://m.tkk7.com/17learning/archive/2016/08/18/431631.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/431631.htmlhttp://m.tkk7.com/17learning/services/trackbacks/431631.html元注解:

  元注解的作用就是負責注解其他注解。Java5.0定義了4個標準的meta-annotation類型,它們被用來提供對其它 annotation類型作說明。Java5.0定義的元注解:
    1.@Target,
    2.@Retention,
    3.@Documented,
    4.@Inherited

  這些類型和它們所支持的類在java.lang.annotation包中可以找到。下面我們看一下每個元注解的作用和相應分參數(shù)的使用說明。
以下為一個簡單場景的應用:
 1.定義注解:
   
@Target(TYPE)
@Retention(RUNTIME)
public @interface Table {
/**
* (Optional) The name of the table.
* <p/>
* Defaults to the entity name.
*/
String name() default "";
}
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public @interface Column {

/**
* (Optional) The name of the column. Defaults to
* the property or field name.
*/
String name() default "";
}
2、定義實體類:
  

@Table(name = "t_s_user")
public class User {
@Column(name="name")
private String name;

@Column(name="pwd")
private String pwd;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}
}

3、運行:

public static void print() {
System.out.println("table's name" + User.class.getAnnotation(Table.class).name());
Field[] fields = User.class.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
System.out.println("field's type:" + field.getType().getName());
System.out.println("field's columnName:" + field.getAnnotation(Column.class).name());
}
}

關于注解的詳細介紹:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html

管先飛 2016-08-18 20:42 發(fā)表評論
]]>
Maven項目配置文件不在resources下,如何使用idea引入配置文件http://m.tkk7.com/17learning/archive/2016/04/29/idea_chooese_classpath.html管先飛管先飛Fri, 29 Apr 2016 07:42:00 GMThttp://m.tkk7.com/17learning/archive/2016/04/29/idea_chooese_classpath.htmlhttp://m.tkk7.com/17learning/comments/430297.htmlhttp://m.tkk7.com/17learning/archive/2016/04/29/idea_chooese_classpath.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/430297.htmlhttp://m.tkk7.com/17learning/services/trackbacks/430297.html
2.左上角選擇添加,選擇添加java(還提供了添加maven項目),然后選擇所需要的目錄:

3.idea 會提示選擇添加什么類型的文件,我們是單純的文件,所以選擇classes

   

 

管先飛 2016-04-29 15:42 發(fā)表評論
]]>
nginx 反向代理到 serverhttp://m.tkk7.com/17learning/archive/2016/01/19/429116.html管先飛管先飛Tue, 19 Jan 2016 09:46:00 GMThttp://m.tkk7.com/17learning/archive/2016/01/19/429116.htmlhttp://m.tkk7.com/17learning/comments/429116.htmlhttp://m.tkk7.com/17learning/archive/2016/01/19/429116.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/429116.htmlhttp://m.tkk7.com/17learning/services/trackbacks/429116.htmlnginx 反向代理到 apache
server {
        listen       80;
        server_name  app.haeee.com;
index index.html index.htm index.php;
   root /alidata/www/movie-app;
     error_page 404 500 502 503 504 http://app.haeee.com; 
location ~ .*\.(php|php5)?$
{
#fastcgi_pass  unix:/tmp/php-cgi.sock;
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
#偽靜態(tài)規(guī)則
#include /alidata/server/nginx/conf/rewrite/phpwind.conf;
access_log  /alidata/log/nginx/access/movie-app.log;
}

nginx 反向代理到 tomcat
server {
    listen   80;
    server_name  hulasou.com www.hulasou.com;
index index.html index.htm index.jsp;
#location ~ .*\.(jsp)?$
location /{      
index index.jsp;
        proxy_pass http://localhost:8181;
}
#偽靜態(tài)規(guī)則
include /alidata/server/nginx/conf/rewrite/uuxiaohua.conf;
access_log  /alidata/log/nginx/access/uuxiaohua.log;
}


管先飛 2016-01-19 17:46 發(fā)表評論
]]>
Spring boot項目打成war包部署到tomcathttp://m.tkk7.com/17learning/archive/2016/01/14/429055.html管先飛管先飛Thu, 14 Jan 2016 09:21:00 GMThttp://m.tkk7.com/17learning/archive/2016/01/14/429055.htmlhttp://m.tkk7.com/17learning/comments/429055.htmlhttp://m.tkk7.com/17learning/archive/2016/01/14/429055.html#Feedback1http://m.tkk7.com/17learning/comments/commentRss/429055.htmlhttp://m.tkk7.com/17learning/services/trackbacks/429055.html
@SpringBootApplication
@ComponentScan
@Import({DBConfiguration.class, ResourceConfiguration.class,AppConfiguration.class})
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
2、修改pom文件:
    修改packaging
    <packaging>war</packaging>
  加入打包到tomcat的配置:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-legacy</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>

3、如果不需要JMX在application.properties文件中加入配置項:
endpoints.jmx.uniqueNames=true
或者直接關閉:
 endpoints.jmx.enabled=false


管先飛 2016-01-14 17:21 發(fā)表評論
]]>
居于goole Blink瀏覽器開發(fā)教程http://m.tkk7.com/17learning/archive/2014/10/19/418873.html管先飛管先飛Sun, 19 Oct 2014 13:09:00 GMThttp://m.tkk7.com/17learning/archive/2014/10/19/418873.htmlhttp://m.tkk7.com/17learning/comments/418873.htmlhttp://m.tkk7.com/17learning/archive/2014/10/19/418873.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/418873.htmlhttp://m.tkk7.com/17learning/services/trackbacks/418873.html

gooole瀏覽器內核已經(jīng)有webkit內核移步到Bilnk開發(fā)屬于Chromium Projects 的版本,下面為完整教程。

目錄

  1. Blink's Mission:
  2. Participating
    1. 2.1 Discussions
    2. 2.2 Watching for new features
    3. 2.3 Committing and reviewing code
    4. 2.4 Developing Blink
    5. 2.5 How do I port Blink to my platform?
  3. Web Platform Changes: Guidelines
    1. 3.1 Scope
    2. 3.2 Policy for shipping and removing web platform API features
    3. 3.3 Trivial Changes
    4. 3.4 Vendor Prefixes
  4. Web Platform Changes: Process
    1. 4.1 Launch Process: New Features
    2. 4.2 Launch Process: Deprecation
    3. 4.3 API Owners
    4. 4.4 API Review
    5. 4.5 Feature Dashboard
    6. 4.6 Guiding Principles for Process
  5. Testing
  6. Architectural Changes
  7. Developer FAQ
  8. Subpage Listing
    友情連接:
    https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html


管先飛 2014-10-19 21:09 發(fā)表評論
]]>
JXl常見API說明http://m.tkk7.com/17learning/archive/2014/09/18/418038.html管先飛管先飛Thu, 18 Sep 2014 01:21:00 GMThttp://m.tkk7.com/17learning/archive/2014/09/18/418038.htmlhttp://m.tkk7.com/17learning/comments/418038.htmlhttp://m.tkk7.com/17learning/archive/2014/09/18/418038.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/418038.htmlhttp://m.tkk7.com/17learning/services/trackbacks/418038.html現(xiàn)階段JAVA操作Excel的JAR主要有apache 的POI及jxl.Jxl方便快捷,POI用于對復雜Excel的操作。

Jxl官網(wǎng):http://www.andykhan.com/jexcelapi/index.html


一、Jxl的API

Jxl的API主要有三個包,jxl,jxl.format,jxl.write。如果單獨的分析API,可能對于更明確的了解此API沒有太多的幫助,我們還是從Excel文件的層次來剝離此API吧。

一個excel文件由一個工作簿組成,一個工作簿又由n個工作表組成,每個工作表又由多個單元格組成。對應于Jxl中的結構為

讀文件(包jxl)

寫文件(包jxl.write)

說明

Workbook 

WritableWorkbook

工作簿

Sheet

WritableSheet

工作表

Cell/Image/Hyperlink

WritableCell/WritableImage//WritableHyperlink

單元格/圖像/超鏈接

       單元格(此處指文本單元格,圖像及鏈接和單元格做為一個層次)分為好多種,所以在API的設計中將Cell作為一個接口而存在。 對應的jxl中的結構為:

讀文件(包jxl)

寫文件(包jxl.write)

說明

Cell

WritableCell

單元格

BooleanCell

Boolean

布爾值單元格

DateCell

DateTime

時間單元格

ErrorCell

 

形式錯誤的單元格

LabelCell

Label

文本單元格

NumberCell

Number

數(shù)字單元格

FormualCedll

Formual

公式單元格

 

Blank

空格單元格

BooleanFormualCell

 

布爾公式單元格

DateFormualCell

 

時間公式單元格

ErrorFormualCell

 

錯誤公式單元格

StringFormualCell

 

文本公式單元格

NumberFormualCell

 

數(shù)字公式單元格

 

而有的時候,我們可能將幾個單元格作為一個整體來處理,在API中對應的則是:

    jxl.Range 

 

    雖然數(shù)據(jù)是電子表格的核心,但是同時其也需要一些輔助類,比如文件格式設置,工作表設置與顯示效果,單元格設置與顯示效果等。按照其層次,則依次有以下接口或類。

讀文件(包jxl)

寫文件(包jxl.write)

說明

WorkbookSettings

WorkbookSettings(包jxl)

設置workbook屬性的bean

SheetSettings

SheetSettings(包jxl)

設置具體sheet的屬性的bean(比如表頭表底等)

HeaderFooter

HeaderFooter(包jxl)

表示表頭表底類

HeaderFooter.Contents

HeaderFooter.Contents(包jxl)

具體表頭表底設置

CellFeatures

WritableCellFeautres

表格內容相關設置(驗證)

CellReferenceHelper

 

得到引用單元格相關屬性

CellType

 

表格相關類型

CellView

CellView(包jxl)

表格視圖相關設置

CellFormat

WritableCellFormat

表格顯示樣式設置

 

BoldStyle

邊框枚舉

 

DateFormat

時間格式

 

DateFormats

時間格式枚舉

 

NumbreFormat

數(shù)據(jù)格式

 

NumbreFormats

數(shù)字模式枚舉

 

WritableFont

字體設置

 

WriteableFont.Fontname

靜態(tài)字體內部類

 

最后,關于Jxl.format包,此包主要是一些與具體樣式有關的接口和枚舉,不進行具體描述。
文章摘自:http://blog.csdn.net/surgent/article/details/5836580



管先飛 2014-09-18 09:21 發(fā)表評論
]]>
Jeecg v3.3版本自帶導出ExcelExportUtil分sheet頁及解決POI表格重繪問題http://m.tkk7.com/17learning/archive/2014/05/29/414230.html管先飛管先飛Thu, 29 May 2014 03:14:00 GMThttp://m.tkk7.com/17learning/archive/2014/05/29/414230.htmlhttp://m.tkk7.com/17learning/comments/414230.htmlhttp://m.tkk7.com/17learning/archive/2014/05/29/414230.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/414230.htmlhttp://m.tkk7.com/17learning/services/trackbacks/414230.html閱讀全文

管先飛 2014-05-29 11:14 發(fā)表評論
]]>
JSON轉換的四種常見情況http://m.tkk7.com/17learning/archive/2014/04/16/412495.html管先飛管先飛Tue, 15 Apr 2014 17:11:00 GMThttp://m.tkk7.com/17learning/archive/2014/04/16/412495.htmlhttp://m.tkk7.com/17learning/comments/412495.htmlhttp://m.tkk7.com/17learning/archive/2014/04/16/412495.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/412495.htmlhttp://m.tkk7.com/17learning/services/trackbacks/412495.html

JSON轉換的四種各種情況:

1. //把java 對象列表轉換為json對象數(shù)組,并轉為字符串

    JSONArray array = JSONArray.fromObject(userlist);
    String jsonstr = array.toString();

2.//把java對象轉換成json對象,并轉化為字符串

  JSONObject object = JSONObject.fromObject(invite);
   String str=object.toString());

3.//把JSON字符串轉換為JAVA 對象數(shù)組

  String personstr = getRequest().getParameter("persons");
  JSONArray json = JSONArray.fromObject(personstr);
  List<InvoidPerson> persons = (List<InvoidPerson>)JSONArray.toCollection(json, nvoidPerson.class);
4.//把JSON字符串轉換為JAVA 對象

  JSONObject jsonobject = JSONObject.fromObject(str);
  PassportLendsEntity passportlends = null;
  try {
   //獲取一個json數(shù)組
   JSONArray array = jsonobject.getJSONArray("passports");
   //將json數(shù)組 轉換成 List<PassPortForLendsEntity>泛型
   List<PassPortForLendsEntity> list = new ArrayList<PassPortForLendsEntity>();
   for (int i = 0; i < array.size(); i++) {   
            JSONObject object = (JSONObject)array.get(i);  
            PassPortForLendsEntity passport = (PassPortForLendsEntity)JSONObject.toBean(object,
              PassPortForLendsEntity.class);
            if(passport != null){
             list.add(passport);
            }  
     }
   //轉換PassportLendsEntity 實體類
  passportlends = (PassportLendsEntity)JSONObject.toBean(jsonobject, PassportLendsEntity.class);

  str = "{\"lendperson\":\"李四\",\"lendcompany\":\"有限公司\",\"checkperson\":\"李四\",

  \"lenddate\":\"2010-07-19T00:00:00\",\"lendcounts\":4,\"
  passports\":[{\"passportid\":\"d\",\"name\":\"李豫川\",\"passporttype\":\"K\"},
  {\"passportid\":\"K9051\",\"name\":\"李平\",\"passporttype\":\"K\"},
  {\"passportid\":\"K90517\",\"name\":\"袁寒梅\",\"passporttype\":\"K\"},
  {\"passportid\":\"K905199\",\"name\":\"賀明\",\"passporttype\":\"K\"}]}";
相關的jar包:



管先飛 2014-04-16 01:11 發(fā)表評論
]]>
ubuntu菜鳥入門http://m.tkk7.com/17learning/archive/2014/02/25/410269.html管先飛管先飛Tue, 25 Feb 2014 02:17:00 GMThttp://m.tkk7.com/17learning/archive/2014/02/25/410269.htmlhttp://m.tkk7.com/17learning/comments/410269.htmlhttp://m.tkk7.com/17learning/archive/2014/02/25/410269.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/410269.htmlhttp://m.tkk7.com/17learning/services/trackbacks/410269.html閱讀全文

管先飛 2014-02-25 10:17 發(fā)表評論
]]>
Java使用Jxl導出Excelhttp://m.tkk7.com/17learning/archive/2013/10/14/404939.html管先飛管先飛Sun, 13 Oct 2013 17:46:00 GMThttp://m.tkk7.com/17learning/archive/2013/10/14/404939.htmlhttp://m.tkk7.com/17learning/comments/404939.htmlhttp://m.tkk7.com/17learning/archive/2013/10/14/404939.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/404939.htmlhttp://m.tkk7.com/17learning/services/trackbacks/404939.html
try {
//執(zhí)行檢索
cmsSupSubmitSiteStatBeanList = cmsSupSubmitSiteInfoMngService.govStat(condition);
//根據(jù)條件查找
cmsSupSubmitSiteInfoMngBeanList = cmsSupSubmitSiteInfoMngService.findByConditionStat(condition);
//臨時文件位置
String path=this.getServletConfig().getServletContext().getRealPath("\\upload\\temp");
File ftemp=new File(path);
if (!ftemp.exists()) {
ftemp.mkdirs();//不存在則創(chuàng)建
}
//生成臨時文件名
String saveFilename = DateUtil.formatNowDateTime("yyyyMMddHHmmssSSS")+getNewName()+ ".csv";
WritableWorkbook book = Workbook.createWorkbook(new File(path + "\\"+saveFilename));// 創(chuàng)建excel文件
// 生成名為“第一頁”的工作表,參數(shù)0表示這是第一頁
WritableSheet sheet = book.createSheet("網(wǎng)站信息統(tǒng)計表", 0);
// 在Label對象的構造子中指名單元格位置是第一列第一行(0,0)
//標題
String[] title1 = {"單位名稱"
,"1月"
,"2月"
,"3月"
,"4月"
,"5月"
,"6月"
,"7月"
,"8月"
,"9月"
,"10月"
,"11月"
,"12月"
,"總報送量"
,"報送率"
,"分數(shù)"
,"加減分"
,"總分數(shù)"
};
//表頭
for(int i=0;i<title1.length;i++){
//第n列第一行標識表頭
Label label = new Label(i, 0, title1[i]);
sheet.addCell(label); //將定義好的單元格添加到工作表中 
}
//內容
for (int i = 0; i < cmsSupSubmitSiteStatBeanList.size(); i++) {
CmsSupSubmitSiteStatBean bean = cmsSupSubmitSiteStatBeanList.get(i);
//內容
String[] rs1 = {  bean.getDeptName()
,String.valueOf(bean.getUsed01()) + "/" + String.valueOf(bean.getSup01())
,String.valueOf(bean.getUsed02()) + "/" + String.valueOf(bean.getSup02())
,String.valueOf(bean.getUsed03()) + "/" + String.valueOf(bean.getSup03())
,String.valueOf(bean.getUsed04()) + "/" + String.valueOf(bean.getSup04())
,String.valueOf(bean.getUsed05()) + "/" + String.valueOf(bean.getSup05())
,String.valueOf(bean.getUsed06()) + "/" + String.valueOf(bean.getSup06())
,String.valueOf(bean.getUsed07()) + "/" + String.valueOf(bean.getSup07())
,String.valueOf(bean.getUsed08()) + "/" + String.valueOf(bean.getSup08())
,String.valueOf(bean.getUsed09()) + "/" + String.valueOf(bean.getSup09())
,String.valueOf(bean.getUsed10()) + "/" + String.valueOf(bean.getSup10())
,String.valueOf(bean.getUsed11()) + "/" + String.valueOf(bean.getSup11())
,String.valueOf(bean.getUsed12()) + "/" + String.valueOf(bean.getSup12())
,String.valueOf(bean.getTolUsed()) + "/" + String.valueOf(bean.getTolSup())
,String.valueOf(bean.getUsedRate()) + "%"
,String.valueOf(bean.getPoint())
,String.valueOf(bean.getPmPoint())
,String.valueOf(bean.getTolPoint())
};
//內容從第二行開始打印
for (int j = 0; j < rs1.length; j++) {
Label label = new Label(j, i+1, rs1[j]);
 sheet.addCell(label);
}
}
// 打印詳細========================================================================================
String[] stDtl = {  "單位名稱"
,"標題"
,"加減分"
,"報送時間"
};
WritableSheet sheet2 = book.createSheet("網(wǎng)站信息采用標題", 0);
// 在Label對象的構造子中指名單元格位置是第一列第一行(0,0)
//標題
//表頭
for(int i=0;i<stDtl.length;i++){
//第n列第一行標識表頭
Label labe2 = new Label(i, 0, stDtl[i]);
sheet2.addCell(labe2);
}
//內容
String titleVar="";
int flagNum=0;
for( int i = 0; i < cmsSupSubmitSiteInfoMngBeanList.size(); i ++ ){
CmsSupSubmitSiteInfoMngBean bean = cmsSupSubmitSiteInfoMngBeanList.get(i);
String[] rs2 = {bean.getSpDeptName()
,bean.getSupTitle()
,String.valueOf(bean.getMsgPmPoint())
,bean.getAddDate()
};
if(!titleVar.equals(rs2[0])){
for (int x =0; x < rs2.length; x++) {
Label labeVar2 = new Label(x, i+1, rs2[x]);
sheet2.addCell(labeVar2);
}
   }else{
    //內容從第二行開始打印
       //sheet.mergeCells(int col1,int row1,int col2,int row2);//左上角到右下角    
        sheet.mergeCells(0,1, 0,flagNum);//左上角到右下角     ,列,行,列,行
for (int j =1; j < rs2.length; j++) {
Label labe2 = new Label(j, i+1, rs2[j]);
sheet2.addCell(labe2);
}
   }
flagNum++;
titleVar=rs2[0];
}
// // 將定義好的單元格添加到工作表中
// /*
// * 生成一個保存數(shù)字的單元格 必須使用Number的完整包路徑,否則有語法歧義 單元格位置是第二列,第一行,
// 值為789.123
// */
// // jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 );
// // sheet.addCell(number);
// 寫入數(shù)據(jù)并關閉文件
book.write();
book.close();
// 將生成的文件下載
AttUploadsServlet servlet=new AttUploadsServlet();
servlet.downLoadFile(req, resp, "網(wǎng)站信息統(tǒng)計.csv", path + "\\" + saveFilename);
} catch (Exception e) {
System.out.println(e);
}

2、下載附件:
/**
* 文檔下載
* @param request 
* @param response
* @param fileName 文件名
* @param attachment -文件路徑
* @return
*/
public boolean downLoadFile(HttpServletRequest request,HttpServletResponse response
,String fileName,String attachment) {
try
{
String filepath =attachment;
File file = new File(filepath);
if(!file.exists())
{
return false;
//throw new Exception(filepath+"文件未找到!");
}
BufferedInputStream br = new BufferedInputStream(new FileInputStream(file));
byte[] buf = new byte[1024];
int len = 0;
response.reset();                                            //非常重要
//純下載方式
response.setContentType("application/x-msdownload"); 
response.setHeader("Content-Disposition", "attachment; filename=" 
+ (new String(fileName.getBytes("gb2312"),"ISO-8859-1"))); 
OutputStream out = response.getOutputStream();
while((len = br.read(buf)) >0)
out.write(buf,0,len);
out.flush();
br.close();
return true;
}
catch(Exception ex)
{
log.info(ex.getMessage());
return false;
}
}

多學一點:劃服務器下載附件
<%@page import="java.io.FileInputStream"%>
<%@page import="java.io.*"%>
<%@page import="java.io.File"%>
<%@page import="java.io.OutputStream"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.net.URL"%>
<%@page import="java.net.URLConnection"%>
<!-- 以上這行設定本網(wǎng)頁為Word格式的網(wǎng)頁 -->  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<%
   String refFilePath= request.getRealPath(new String(request.getParameter("fileSrc").getBytes("ISO-8859-1"),"UTF-8"));
   //String docName = new String(request.getParameter("fileName").getBytes("ISO-8859-1"),"UTF-8");
  request.setCharacterEncoding("UTF-8");
  String docName = request.getParameter("fileName");
  try{
        /* 創(chuàng)建輸入流 */  
         InputStream is = this.getClass().getClassLoader().getResourceAsStream("project.properties"); 
        Properties p = new Properties();
      try {
     p.load(is);       //Properties 對象已生成,包括文件中的數(shù)據(jù)
      }catch(IOException e){
       e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
      }
      
      String refFp=p.getProperty("xzql.refFilePath");
        URL ul=new URL(refFp+new String(request.getParameter("fileSrc").getBytes("ISO-8859-1"),"UTF-8"));
        URLConnection conn=ul.openConnection();
        InputStream inStream = conn.getInputStream();
        String disName = java.net.URLEncoder.encode(docName, "UTF-8");  
        response.reset();  
        response.setContentType("application/x-msdownload");  
        response.addHeader("Content-Disposition",  
                "attachment; filename=\"" + disName + "\"");  
         
        
        byte[] buf = new byte[4096];  
        /* 創(chuàng)建輸出流 */  
        ServletOutputStream servletOS = response.getOutputStream();  
        int readLength;
        int alllength=0;
        while (((readLength = inStream.read(buf)) != -1)) {  
            servletOS.write(buf, 0, readLength); 
            alllength+= readLength;
        }
        response.setContentLength(alllength); 
        inStream.close();  
        servletOS.flush();  
        servletOS.close();  
   }catch(Exception e){
  out.print("文件不存在! ");
  e.printStackTrace();
  %> 
  </html>

2).struts2下載Excel:
http://blog.csdn.net/weinianjie1/article/details/5941042







管先飛 2013-10-14 01:46 發(fā)表評論
]]>
Java打包Jar方法詳細解http://m.tkk7.com/17learning/archive/2013/03/01/395886.html管先飛管先飛Fri, 01 Mar 2013 01:26:00 GMThttp://m.tkk7.com/17learning/archive/2013/03/01/395886.htmlhttp://m.tkk7.com/17learning/comments/395886.htmlhttp://m.tkk7.com/17learning/archive/2013/03/01/395886.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/395886.htmlhttp://m.tkk7.com/17learning/services/trackbacks/395886.html

   創(chuàng)建可執(zhí)行的 JAR 文件包,制作一個可執(zhí)行的 JAR 文件包來發(fā)布你的程序是 JAR 文件包最典型的用法。
    Java 程序是由若干個 .class 文件組成的。這些 .class 文件必須根據(jù)它們所屬的包不同而分級分目錄存放;運行前需要把所有用到的包的根目錄指定給 CLASSPATH 環(huán)境變量或者 java 命令的 -cp 參數(shù);運行時還要到控制臺下去使用 java 命令來運行,如果需要直接雙擊運行必須寫 Windows 的批處理文件 (.bat) 或者 Linux 的 Shell 程序。因此,許多人說,Java 是一種方便開發(fā)者苦了用戶的程序設計語言。其實不然,如果開發(fā)者能夠制作一個可執(zhí)行的 JAR 文件包交給用戶,那么用戶使用起來就方便了。在 Windows 下
安裝 JRE (Java Runtime Environment) 的時候,安裝文件會將 .jar 文件映射給 javaw.exe 打開。那么,對于一個可執(zhí)行的 JAR 文件包,用戶只需要雙擊它就可以運行程序了,和閱讀 .chm 文檔一樣方便 (.chm 文檔默認是由hh.exe 打開的)。那么,現(xiàn)在的關鍵,就是如何來創(chuàng)建這個可執(zhí)行的 JAR 文件包。

創(chuàng)建可執(zhí)行的 JAR 文件包,需要使用帶 cvfm 參數(shù)的 jar 命令,同樣以上述 test 目錄為例,命令如下:

jar cvfm test.jar manifest.mf test

這里 test.jar 和 manifest.mf 兩個文件,分別是對應的參數(shù) f 和 m,其重頭戲在 manifest.mf。因為要創(chuàng)建可
執(zhí)行的 JAR 文件包,光靠指定一個 manifest.mf 文件是不夠的,因為 MANIFEST 是 JAR 文件包的特征,可執(zhí)行的
JAR 文件包和不可執(zhí)行的 JAR 文件包都包含 MANIFEST。關鍵在于可執(zhí)行 JAR 文件包的 MANIFEST,其內容包含了
Main-Class 一項。這在 MANIFEST 中書寫格式如下:

Main-Class: 可執(zhí)行主類全名(包含包名)

例如,假設上例中的 Test.class 是屬于 test 包的,而且是可執(zhí)行的類
(定義了 public static void main(String[]) 方法),那么這個 manifest.mf 可以編輯如下:

Main-Class: test.Test <回車>

這個 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且該
行以一個回車符結束即可。創(chuàng)建了 manifest.mf 文件之后,我們的目錄結構變?yōu)椋?/span>

==

|-- test

| `-- Test.class

`-- manifest.mf

這時候,需要到 test 目錄的上級目錄中去使用 jar 命令來創(chuàng)建 JAR 文件包。也就是在目錄樹中使用“==”表
示的那個目錄中,使用如下命令:

jar cvfm test.jar manifest.mf test

之后在“==”目錄中創(chuàng)建了 test.jar,這個 test.jar 就是執(zhí)行的 JAR 文件包。運行時只需要使用
java -jar test.jar 命令即可。

需要注意的是,創(chuàng)建的 JAR 文件包中需要包含完整的、與 Java 程序的包結構對應的目錄結構,就像上例一樣。
而 Main-Class 指定的類,也必須是完整的、包含包路徑的類名,如上例的 test.Test;而且在沒有打成 JAR 文件包
之前可以使用 java <類名> 來運行這個類,即在上例中 java test.Test 是可以正確運行的 (當然要在 CLASSPATH
正確的情況下)。



管先飛 2013-03-01 09:26 發(fā)表評論
]]>
Java Web 開發(fā)---Tomcat的配置http://m.tkk7.com/17learning/archive/2013/03/01/395884.html管先飛管先飛Fri, 01 Mar 2013 01:15:00 GMThttp://m.tkk7.com/17learning/archive/2013/03/01/395884.htmlhttp://m.tkk7.com/17learning/comments/395884.htmlhttp://m.tkk7.com/17learning/archive/2013/03/01/395884.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/395884.htmlhttp://m.tkk7.com/17learning/services/trackbacks/395884.html配置環(huán)境變量: 

添加三個系統(tǒng)變量: 

1、JAVA_HOME: C:\JDK  實際JDK的位置

2、TOMCAT_HOME(或CATALINA_HOME): C:\Tomcat

3、CLASSPATH: %JAVA_HOME%\lib;%TOMCAT_HOME%\lib

4、path(編輯path時多個用";"隔開):C:\Program Files\Java\jdk1.6.0_16\bin(JDK的bin中)

              

機器上有CLASSPATH用分號隔開,然后加在后面。

 

Tomcat的環(huán)境變量就配置完畢了,下面檢驗Tomcat是否能夠運行:

 

在控制臺中轉到C:\Tomcat\bin這個目錄,運行startup,然后回出現(xiàn)一個窗口,連跳一大串東西,最后表示Server已經(jīng)運行

 

在瀏覽器中輸入http://localhost:8080,出現(xiàn)歡迎界面,則表示Tomcat沒問題了

 

然后和上面一樣,寫入你的第一個Servlet

 

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorld extends HttpServlet

{

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException

{

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<html><head><title>");

out.println("This is my first Servlet");

out.println("</title></head><body>");

out.println("<h1>Hello,World!</h1>");

out.println("</body></html>");

 

}

}

 

然后照樣用javac HelloWorld.java來編譯這個文件,如果出現(xiàn)無法import javax.servlet.*

 

那么就是應該把C:\Tomcat\common\lib里面的servlet-api.jar(根據(jù)實際來看)文件拷貝到C:\JDK\jre\lib\ext中,再次編譯

 

然后在Tomcat目錄里面的C:\Tomcat\webapps\myweb(目錄名可任意)里面按如下的文件結構:

 

 

myweb\WEB-INF\web.xml

myweb\WEB-INF\classes\HelloWorld.class(把上面生成的HelloWorld.class文件放在這個里面)

 

Servlet必須使用C:\Tomcat\webapps\myweb\WEB-INF這個目錄下面的web.xml文件進行注冊,用記事本打開這個web.xml文件,在里面加入

 

<servlet>

<servlet-name>HelloWorld</servlet-name>

<servlet-class>HelloWorld</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>

<url-pattern>/HelloWorld</url-pattern>

</servlet-mapping>

 

這樣的結構

 

<servlet>

<servlet-name>HelloWorld</servlet-name>

<servlet-class>HelloWorld</servlet-class>

</servlet>

表示指定包含的servlet類.

 

 

而以下的結構

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>

<url-pattern>/HelloWorld</url-pattern>

</servlet-mapping>

表示指定HelloServlet應當映射到哪一種URL模式。

 

 

在修改web.xml完畢過后,重新啟動Server,然后再輸入http://localhost:8080/myweb/HelloWorld



管先飛 2013-03-01 09:15 發(fā)表評論
]]>
proxool連接池連接sql server2005數(shù)據(jù)庫報錯http://m.tkk7.com/17learning/archive/2013/01/30/394903.html管先飛管先飛Tue, 29 Jan 2013 17:35:00 GMThttp://m.tkk7.com/17learning/archive/2013/01/30/394903.htmlhttp://m.tkk7.com/17learning/comments/394903.htmlhttp://m.tkk7.com/17learning/archive/2013/01/30/394903.html#Feedback1http://m.tkk7.com/17learning/comments/commentRss/394903.htmlhttp://m.tkk7.com/17learning/services/trackbacks/394903.html我使用的是proxool連接池連接sql server2005數(shù)據(jù)庫,控制臺報:簽名信息和同一包里面的另外一個類得簽名信息不匹配
Caused by: java.lang.SecurityException: class "com.microsoft.sqlserver.jdbc.ISQLServerStatement$$FastClassByProxool$$3407f37e"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
... 54 more

解決方法:
    用的JDBC包版本為:sqljdbc_3.0.1301.101_chs中的,下載連接:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599。
    拷貝老項目中的一個sqljdbc.jar問題解決,求高手解答下原因。sqljdbc.jar下載連接》可用的包

管先飛 2013-01-30 01:35 發(fā)表評論
]]>
使用短信的webservice axis生成java開發(fā)包http://m.tkk7.com/17learning/archive/2012/12/09/392693.html管先飛管先飛Sun, 09 Dec 2012 14:11:00 GMThttp://m.tkk7.com/17learning/archive/2012/12/09/392693.htmlhttp://m.tkk7.com/17learning/comments/392693.htmlhttp://m.tkk7.com/17learning/archive/2012/12/09/392693.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/392693.htmlhttp://m.tkk7.com/17learning/services/trackbacks/392693.htmlset Axis_Lib=F:\webservice\axis1.4
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% 
set Axis_Servlet=http://xx.xx.xx.xx/services/ctcc_ema_wbs?wsdl
%Java_Cmd%  org.apache.axis.wsdl.WSDL2Java --server-side --skeletonDeploy true %Axis_Servlet% 


管先飛 2012-12-09 22:11 發(fā)表評論
]]>
Java在線咨詢,多人咨詢。http://m.tkk7.com/17learning/archive/2012/11/25/391930.html管先飛管先飛Sun, 25 Nov 2012 08:00:00 GMThttp://m.tkk7.com/17learning/archive/2012/11/25/391930.htmlhttp://m.tkk7.com/17learning/comments/391930.htmlhttp://m.tkk7.com/17learning/archive/2012/11/25/391930.html#Feedback11http://m.tkk7.com/17learning/comments/commentRss/391930.htmlhttp://m.tkk7.com/17learning/services/trackbacks/391930.html1、客服登錄:客服有客服ID,單位ID:
   WorkerVO workerVO = (WorkerVO) req.getSession().getAttribute("workerVO");
if(workerVO==null){
workerVO = new WorkerVO();
String workerid = req.getParameter("workerid"); //單位ID
String userid = req.getParameter("userid"); //用戶ID
if(!StringUtil.isBlank(workerid)){
boolean b = WorkerLogService.getWorker(workerid, workerVO); //獲取單位信息
if(b){ //登陸成功
workerVO.setStartDate((new Date()).getTime());
if(!StringUtil.isBlank(userid)){
DeptService deptService = new DeptService();
OrgUserVO userVO = deptService.getOrgUser(userid); //獲取用戶信息
workerVO.setUserId(userid);
if(userVO!=null){
workerVO.setUserName(userVO.getUserName());
}
}
//1. get map
// key-userkey  value-workersMap   workersMap<String,Map> ------String 為單位id,
//--- Map為客服人員集合,Map<String,Object> ,key為客服Id, value為客服人員對象
//(客服人員ID,客服人員姓名,單位id ,單位名稱 ,狀態(tài)(1在線、2忙碌、3離線),在線——1在咨詢中,2空閑,如果狀態(tài)是不在線:值為0)。
super.init(config);  
ServletContext application=this.getServletContext();  //得到Application對象
Map<String,Map> workersMap = (Map)application.getAttribute("workersKey");
if(workersMap == null){ //判斷Map是否為空
//初始化
Map<String,Map> workerMap = new Hashtable<String,Map>();
Map<String,Object> childWorkerMap = new Hashtable<String, Object>();
WorkerOnlineVO onlineWorker=new WorkerOnlineVO();
onlineWorker.setDeptId(workerVO.getDeptNo().toString());//單位Id
onlineWorker.setDeptName(workerVO.getDeptName());
onlineWorker.setWorkerUserId(workerVO.getUserId());
onlineWorker.setWorkerUserName(workerVO.getUserName());
onlineWorker.setState("1");
onlineWorker.setConsultate("2");
childWorkerMap.put(workerVO.getUserId(), onlineWorker);
workerMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
application.setAttribute("workersKey", workerMap);
}else{
Map<String,Object> childWorkerMap=workersMap.get(workerVO.getDeptNo());
WorkerOnlineVO workerOnline=(WorkerOnlineVO) childWorkerMap.get(workerVO.getUserId());
if(workerOnline==null){
WorkerOnlineVO onlineWorker=new WorkerOnlineVO();
onlineWorker.setDeptId(workerVO.getDeptNo().toString());
onlineWorker.setDeptName(workerVO.getDeptName());
onlineWorker.setWorkerUserId(workerVO.getUserId());
onlineWorker.setWorkerUserName(workerVO.getUserName());
onlineWorker.setState("1");
onlineWorker.setConsultate("2");
childWorkerMap.put(workerVO.getUserId(), onlineWorker);
workersMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
//application.setAttribute("workersKey", workersMap);
}else{
workerOnline.setState("1");
workerOnline.setConsultate("2");
childWorkerMap.put(workerVO.getUserId(), workerOnline);
workersMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
// application.setAttribute("workersKey", workersMap);
}
}
req.getSession().setAttribute("workerVO", workerVO);
OnlineStatusVO.WORKER_QUESTER_MAP.put(workerid, new ArrayList<QuesterVO>());
OnlineStatusVO.WORKER_VO_MAP.put(workerid, workerVO);
req.getRequestDispatcher("../worker.jsp").forward(req, res);
}else{
res.sendRedirect("../worker_index.jsp?flag=1");
}
}else if(!StringUtil.isBlank(userid)){
if("1".equals(userid)){
workerVO.setId("0");
workerVO.setDeptName("技術支持");
workerVO.setDeptNo("0");
workerVO.setState("1");
workerVO.setUserId(userid);
req.getSession().setAttribute("workerVO", workerVO);
OnlineStatusVO.WORKER_QUESTER_MAP.put("0", new ArrayList<QuesterVO>());
OnlineStatusVO.WORKER_VO_MAP.put("0", workerVO);
req.getRequestDispatcher("../worker.jsp").forward(req, res);
}
}else{
res.sendRedirect("../worker_index.jsp?flag=1");
}
}else{ //workerVO != null
if(StringUtil.isBlank(OnlineStatusVO.WORKER_QUESTER_MAP.get(workerVO.getId()))){
OnlineStatusVO.WORKER_QUESTER_MAP.put(workerVO.getId(), new ArrayList<QuesterVO>());
}
if(StringUtil.isBlank(OnlineStatusVO.WORKER_VO_MAP.get(workerVO.getId()))){
System.out.println("===OnlineStatusVO.WORKER_VO_MAP.get======");
OnlineStatusVO.WORKER_VO_MAP.put(workerVO.getId(), workerVO);
}
req.getRequestDispatcher("../worker.jsp").forward(req, res);
}

1、咨詢者咨詢:單位ID:
String workerId = req.getParameter("workerId"); //單位ID
String outmsg = "";
if(StringUtil.isBlank(workerId)){
Log.error("---單位Id為空------");
}else{
super.init(config);  
ServletContext application=this.getServletContext();  
Map<String,Map> workersMap = (Map)application.getAttribute("workersKey");
if(workersMap==null){ //如果workersMap為空
outmsg="請電話咨詢,電話號碼為:XXXXX";
}else{
Map<String,WorkerOnlineVO> childWorkerMap =workersMap.get(workerId);
if(childWorkerMap==null){
outmsg="請電話咨詢,電話號碼為:XXXXX";
}else{
//boolean flagTel=false; //無客服人員在線
 String  workerUserIdTemp="";
  Set<String> key = childWorkerMap.keySet();
  for (Iterator it = key.iterator(); it.hasNext();) {
WorkerOnlineVO workerOnlineVo =childWorkerMap.get((String)it.next()); 
//狀態(tài)(1在線、2忙碌、3離線),在線——1在咨詢中,2空閑,如果狀態(tài)是不在線:值為0
//安排人員的優(yōu)先級:在線 --空閑  》在線--咨詢中 ,其他條件不符合。
if(workerOnlineVo.getState().equals("1")&& workerOnlineVo.getConsultate().equals("2")){
//在線 --空閑  ------------優(yōu)先級最高
workerUserIdTemp=workerOnlineVo.getWorkerUserId();
break;
else if(workerOnlineVo.getState().equals("1")&& workerOnlineVo.getConsultate().equals("1")){
//在線--咨詢中
if(workerUserIdTemp.equals("")){
workerUserIdTemp=workerOnlineVo.getWorkerUserId();
}
}
       }
if(workerUserIdTemp.equals("")){
outmsg="請電話咨詢,電話號碼為:XXXXX";
}else{
WorkerOnlineVO workerOnlineVo = childWorkerMap.get(workerUserIdTemp);
workerOnlineVo.setState("1");
workerOnlineVo.setConsultate("1");
childWorkerMap.put(workerOnlineVo.getWorkerUserId(), workerOnlineVo);
workersMap.put(workerId, childWorkerMap); //和原來的Map一樣
//application.setAttribute("workersKey", workersMap);
outmsg = "您好,請問有什么可以幫助您的嗎?";
QuesterVO questerVO = (QuesterVO) req.getSession().getAttribute("questerVO");
if(questerVO==null || !workerId.equals(questerVO.getWorkerId())){
OnlineStatusVO.WORKER_USER.put("workerUser", workerOnlineVo);
questerVO = QuesterLogService.getQuester(workerId); //必須使用人id
questerVO.setWorkerUserId(workerOnlineVo.getWorkerUserId());
req.getSession().setAttribute("questerVO", questerVO);
OnlineStatusVO.WORKER_QUESTER_MAP.get(workerId).add(questerVO);
OnlineStatusVO.QUESTER_VO_MAP.put(questerVO.getId(), questerVO);
req.setAttribute("workerOnlineVo", workerOnlineVo);
}
}
req.setAttribute("outmsg", outmsg);
req.getRequestDispatcher("/quester.jsp").forward(req, res);
}
}
}

3、中間類:
public class OnlineStatusVO {
public static Map<String,WorkerVO> WORKER_VO_MAP = new HashMap<String,WorkerVO>();
public static Map<String,QuesterVO> QUESTER_VO_MAP = new HashMap<String,QuesterVO>();
public static Map<String, List<QuesterVO>> WORKER_QUESTER_MAP = new HashMap<String, List<QuesterVO>>();
public static Map<String, WorkerOnlineVO> WORKER_USER = new HashMap<String, WorkerOnlineVO>();
}


管先飛 2012-11-25 16:00 發(fā)表評論
]]>
在同一張數(shù)據(jù)庫表中使用Map統(tǒng)計數(shù)據(jù)http://m.tkk7.com/17learning/archive/2012/09/12/387602.html管先飛管先飛Wed, 12 Sep 2012 15:57:00 GMThttp://m.tkk7.com/17learning/archive/2012/09/12/387602.htmlhttp://m.tkk7.com/17learning/comments/387602.htmlhttp://m.tkk7.com/17learning/archive/2012/09/12/387602.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/387602.htmlhttp://m.tkk7.com/17learning/services/trackbacks/387602.html
               String startDate = req.getParameter("startDate"); 
String endDate = req.getParameter("endDate");
UserVO users = (UserVO) req.getSession().getAttribute("users");
List<ReportBaseVO> titleList = MessageCountService.titleList();  //表列
List<ReportBaseVO> mentList=MessageCountService.findMentList(users,messType); //表行
                List<ReportDataVO> dataList=MessageCountService.findData(users,messType,startDate,endDate); //數(shù)據(jù)集
Map<String,String> dataMap = ReportService.getReport(dataList); //裝入Map
2、方法實現(xiàn):
//0:滿意 1:非常滿意2:不滿意 
public static List<ReportBaseVO> titleList(){
List<ReportBaseVO> list = new ArrayList<ReportBaseVO>();
ReportBaseVO vo1 = new ReportBaseVO();
vo1.setCode("0");
vo1.setName("滿意");
list.add(vo1);
ReportBaseVO vo2 = new ReportBaseVO();
vo2.setCode("1");
vo2.setName("基本滿意");
list.add(vo2);
ReportBaseVO vo3 = new ReportBaseVO();
vo3.setCode("2");
vo3.setName("不滿意");
list.add(vo3);
return list;
}

public static List<ReportBaseVO> findMentList(UserVO users,String type){
List<ReportBaseVO> list = new ArrayList<ReportBaseVO>();
         
if((users.isHave("0") && ("1".equals(type)||type==null||"".equals(type)))||users.isHave("1") && ("1".equals(type)||type==null||"".equals(type))){
ReportBaseVO vo1 = new ReportBaseVO();
vo1.setCode("1");
vo1.setName("局長信箱");
list.add(vo1);
}
}

public static List<ReportDataVO> findData(UserVO users, String messType,String startDate,String endDate){
               List<ReportDataVO> list = new ArrayList<ReportDataVO>();
String sql="select APPRAISAL as titleId,MESS_TYPE as mentId,count(ID) as count from act_message where DELETE_FLAG='0' and APPRAISAL<>'' and MESS_TYPE='1' group by MESS_TYPE,APPRAISAL";
List<ReportDataVO> reportDataList = DBBeanUtil.execute(conn, new ReportDataVO(),sql);
list.addAll(reportDataList);
return list;
}

public static Map<String,String> getReport(List<ReportDataVO> paraList){
Map<String, String> reportMap = new HashMap<String, String>();
for(int i=0;i<paraList.size();i++){
ReportDataVO p = paraList.get(i);
reportMap.put(p.getMentId()+"_"+p.getTitleId(), String.valueOf(p.getCount()));
}
return reportMap;
}

3、遍歷數(shù)據(jù):
Map<String,String> dataMap = ReportService.getReport(dataList);
String[][] data = new String[mentList.size()][titleList.size()];
for (int i = 0; i < mentList.size(); i++) {
mentList.get(i).getName();  
int typeAll=0;
for (int j = 0; j < titleList.size(); j++) {
String dateMa=mentList.get(i).getCode()+ "_" + titleList.get(j).getCode();
//             out.print("titleList.get(j).getCode():"+titleList.get(j).getCode());
String content = dataMap.get(dateMa);//IsTurn0
if (content == null || "".equals(content)) {
content = "0";
}
data[i][j] = content;
typeAll=Integer.parseInt(content)+typeAll;
}
BigDecimal point = new BigDecimal(0);
BigDecimal mcount=new BigDecimal(data[i][0]).add(new BigDecimal(data[i][1]));//滿意發(fā)布件數(shù)
BigDecimal atotal=mcount.add(new BigDecimal(data[i][2]));//共發(fā)布件數(shù)
if(atotal.compareTo(new BigDecimal(0))!=0){
point = new BigDecimal(100).multiply(mcount.divide(atotal,2, RoundingMode.HALF_UP));
}
}


管先飛 2012-09-12 23:57 發(fā)表評論
]]>
Java讀取*.properties文件http://m.tkk7.com/17learning/archive/2012/05/17/javaproperties.html管先飛管先飛Thu, 17 May 2012 03:02:00 GMThttp://m.tkk7.com/17learning/archive/2012/05/17/javaproperties.htmlhttp://m.tkk7.com/17learning/comments/378378.htmlhttp://m.tkk7.com/17learning/archive/2012/05/17/javaproperties.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/378378.htmlhttp://m.tkk7.com/17learning/services/trackbacks/378378.html
1、配置文件(project.properties ):
  xzql.refFilePath=www.baidu.com
2、讀取properties文件:
try{
        /* 創(chuàng)建輸入流 */  
         InputStream is = this.getClass().getClassLoader().getResourceAsStream("project.properties"); 
          Properties p = new Properties();
      try {
     p.load(is);       //Properties 對象已生成,包括文件中的數(shù)據(jù)
      }catch(IOException e){
       e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
      }
      
      String refFp=p.getProperty("xzql.refFilePath");



管先飛 2012-05-17 11:02 發(fā)表評論
]]>
java 遍歷結點http://m.tkk7.com/17learning/archive/2011/09/27/359625.html管先飛管先飛Tue, 27 Sep 2011 08:29:00 GMThttp://m.tkk7.com/17learning/archive/2011/09/27/359625.htmlhttp://m.tkk7.com/17learning/comments/359625.htmlhttp://m.tkk7.com/17learning/archive/2011/09/27/359625.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/359625.htmlhttp://m.tkk7.com/17learning/services/trackbacks/359625.html
 try {
File[] roots=File.listRoots();
 System.out.println("Available drivers");
 for(int i=0;i<roots.length;i++){
 System.out.println(roots[i].getAbsolutePath()+"");
 System.out.println("");
 }
 
 File path=new File(".");
 String[] list;
 list=path.list();
 System.out.println("Files in current  dir:");
 for(int i=0;i<list.length;i++){
 System.out.println(list[i]);
 }
} catch (Exception e) {
e.printStackTrace();
}


管先飛 2011-09-27 16:29 發(fā)表評論
]]>
StringBuffer中l(wèi)enth()和capacity()的區(qū)別http://m.tkk7.com/17learning/archive/2011/09/26/359555.html管先飛管先飛Mon, 26 Sep 2011 13:27:00 GMThttp://m.tkk7.com/17learning/archive/2011/09/26/359555.htmlhttp://m.tkk7.com/17learning/comments/359555.htmlhttp://m.tkk7.com/17learning/archive/2011/09/26/359555.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/359555.htmlhttp://m.tkk7.com/17learning/services/trackbacks/359555.html
初始化一個StringBuffer后,給字符串增加一個長度。 
 str.setLength(50);
 System.out.println("---"+str.capacity());
 System.out.println("----"+str.length());

當Length>capacity時候,capacity=capacity+50;
當Length<=capacity時候,capacity不變;






管先飛 2011-09-26 21:27 發(fā)表評論
]]>
This關鍵字的使用http://m.tkk7.com/17learning/archive/2011/09/25/359442.html管先飛管先飛Sun, 25 Sep 2011 03:07:00 GMThttp://m.tkk7.com/17learning/archive/2011/09/25/359442.htmlhttp://m.tkk7.com/17learning/comments/359442.htmlhttp://m.tkk7.com/17learning/archive/2011/09/25/359442.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/359442.htmlhttp://m.tkk7.com/17learning/services/trackbacks/359442.html
package com.gxf.basic;
public class ThisDemo {
   int i=1;
   public ThisDemo(){
  Thread thread=new Thread(){
  public void run(){
    for(;;){
    ThisDemo.this.run();
    try{
      sleep(1000);
    }catch(Exception e){
    e.printStackTrace();
    }
    }
  }
  };
  thread.start();
   }
  public void run(){
   System.out.println(i);
   i++;
  } 
   public static void main(String[] args) {
new ThisDemo();
}
}


管先飛 2011-09-25 11:07 發(fā)表評論
]]>
Java匿名類的使用http://m.tkk7.com/17learning/archive/2011/09/25/359440.html管先飛管先飛Sun, 25 Sep 2011 02:50:00 GMThttp://m.tkk7.com/17learning/archive/2011/09/25/359440.htmlhttp://m.tkk7.com/17learning/comments/359440.htmlhttp://m.tkk7.com/17learning/archive/2011/09/25/359440.html#Feedback0http://m.tkk7.com/17learning/comments/commentRss/359440.htmlhttp://m.tkk7.com/17learning/services/trackbacks/359440.html
abstract class AnonymousDemo{
abstract void go();
}
public class AnAnonymousDemo {
   public static void main(String[] args) {
       final String str="guanxianfei is great!";
        new  AnonymousDemo(){
         void go(){
         System.out.println(str);
         }
        }.go();
}
}


管先飛 2011-09-25 10:50 發(fā)表評論
]]>
主站蜘蛛池模板: 亚洲最大天堂无码精品区| 亚洲乱码国产一区网址| 国产精品视频免费| 91热成人精品国产免费| 小草在线看片免费人成视久网| 青柠影视在线观看免费| 91成人免费观看在线观看| 中文字幕不卡免费视频| 国产性生大片免费观看性| 中文字幕在线免费看线人| 东方aⅴ免费观看久久av| 亚洲电影免费在线观看| 日韩精品无码免费一区二区三区| 最近免费mv在线电影| 黄色网址免费观看| 成年美女黄网站色大免费视频| 四虎免费在线观看| 免费一级黄色毛片| 亚洲色欲色欲www在线丝| 久久久综合亚洲色一区二区三区 | 久久不见久久见免费视频7 | 婷婷国产偷v国产偷v亚洲| 精品一区二区三区无码免费直播| 一边摸一边桶一边脱免费视频| 国产线视频精品免费观看视频| 免费无码一区二区三区| 日韩av无码成人无码免费| 国产资源免费观看| 曰韩亚洲av人人夜夜澡人人爽| 亚洲成年轻人电影网站www| 亚洲国产成人九九综合| 亚洲大尺度无码无码专线一区| 日韩在线观看免费完整版视频| a级毛片毛片免费观看永久| 亚洲免费电影网站| 色吊丝永久在线观看最新免费| 亚洲午夜福利精品久久| 久久亚洲日韩精品一区二区三区 | 亚洲熟女一区二区三区| 亚洲综合网美国十次| 亚洲av无码专区首页|