锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合激情五月色一区,久久综合九九亚洲一区,亚洲精品伦理熟女国产一区二区http://www.tkk7.com/gavinju/archive/2007/04/11/109836.htmlHandSoftHandSoftWed, 11 Apr 2007 02:40:00 GMThttp://www.tkk7.com/gavinju/archive/2007/04/11/109836.htmlhttp://www.tkk7.com/gavinju/comments/109836.htmlhttp://www.tkk7.com/gavinju/archive/2007/04/11/109836.html#Feedback0http://www.tkk7.com/gavinju/comments/commentRss/109836.htmlhttp://www.tkk7.com/gavinju/services/trackbacks/109836.html鍦⊿trut涓?瀹炵幇table涓鍒朵竴琛岀殑鍔熻兘
line[j]鏄澶嶅埗鐨勪竴琛?Action涓彲浠ヨ幏鍙栧埌瑕佸鍒剁殑琛岀殑ID.
鍥犱負line[j]涓湁寰堝灞炴?瑕佹槸涓涓竴涓殑灞炴у幓get,鐒跺悗set鐨勮瘽,浠g爜閲忎細
寰堝ぇ,鑰屼笖浼氬嚭鐜板緢澶氬啑浣欎唬鐮併?br>榪欐槸鎴戣澶嶅埗鍑烘潵鐨勪竴琛?br>if (j == rowId && !line[j].getNewRecord()) {
     rowList.add(line[j]);
     //灝嗚繖涓琛屽叏閮ㄥ鍒?br>    }
鐜板湪瑕佷嬌寰楀叾涓殑鏌愬嚑涓睘鎬у鍒跺嚭鏉ヤ負絀?br>鍒欓渶瑕佷竴涓竴涓殑set,get.
if (j == rowId && !line[j].getNewRecord()) {
    CreateDeliveryLineRow  cdlr = new CreateDeliveryLineRow  ();
    if(line[j].getMfgLot() != null){
         cdlr.setMfgLot = null;
   }
銆傘傘傘傘傘?br>     rowList.add(cdlr);
     //灝嗚繖涓琛屽叏閮ㄥ鍒?br>    }

浠ヤ笅鏄瘮杈冨ソ鐨勮В鍐蟲柟妗?
鍒╃敤apache鐨刢ommon綾諱腑鐨凚eanUtils鏉ュ疄鐜板璞″睘鎬х殑澶嶅埗
if (j == rowId && !line[j].getNewRecord()) {
     
       
       CreateDeliveryLineRow row = new CreateDeliveryLineRow();
       BeanUtils.copyProperties(row,line[j]);銆銆銆//澶嶅埗鍑哄璞ine[j],灝嗗叾灞炴ц祴浜坮ow
       row.setQuantity(null);                                     //鍦╮ow涓交鏉劇殑瀹炵幇瀵規(guī)煇鍑犱釜灞炴х殑鎺у埗
       row.setMfgLot(null);
       row.setMiniQuantity(null);
       row.setBoxQuantity(null);
      rowList.add(row);
      //rowList.add(cdr);
    }
===================================================
CreateDeliveryForm getForm = (CreateDeliveryForm) form;
銆傘傘傘傘傘?br>CreateDeliveryLineRow[] line = getForm.getLine();
if (line != null && line instanceof CreateDeliveryLineRow[]) {
   int size = line.length;

   for (int j = 0; j < size; j++) {
    if (!line[j].getNewRecord() && !line[j+1].getNewRecord()) {
     if (line[j].getBoxQuantity() == 0L) {
      line[j].setBoxQuantity(null);
     }
     if (line[j].getMiniQuantity() == 0L) {
      line[j].setMiniQuantity(null);
     }
     if (line[j].getQuantity() == 0D) {
      line[j].setQuantity(null);
     }
     rowList.add(line[j]);
    }
    if (j == rowId && !line[j].getNewRecord()) {
     
       
       CreateDeliveryLineRow row = new CreateDeliveryLineRow();
       BeanUtils.copyProperties(row,line[j]);
       row.setQuantity(null);
       row.setMfgLot(null);
       row.setMiniQuantity(null);
       row.setBoxQuantity(null);
       rowList.add(row);
      //rowList.add(cdr);
    }

   }
  }

銆傘傘傘傘傘?br>request.setAttribute("results", rowList);

HandSoft 2007-04-11 10:40 鍙戣〃璇勮
]]>
Dwr---examplehttp://www.tkk7.com/gavinju/archive/2007/01/21/95188.htmlHandSoftHandSoftSun, 21 Jan 2007 15:35:00 GMThttp://www.tkk7.com/gavinju/archive/2007/01/21/95188.htmlhttp://www.tkk7.com/gavinju/comments/95188.htmlhttp://www.tkk7.com/gavinju/archive/2007/01/21/95188.html#Feedback0http://www.tkk7.com/gavinju/comments/commentRss/95188.htmlhttp://www.tkk7.com/gavinju/services/trackbacks/95188.html 1. 鍦╳eb.xml鏂囦歡涓敞鍐宒wr
聽聽 <servlet>
聽聽聽 <servlet-name>dwr-invoker</servlet-name>
聽聽聽 <display-name>DWR Servlet</display-name>
聽聽聽 <description>Direct Web Remoter Servlet</description>
聽聽聽 <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
聽聽聽 <init-param>
聽聽聽聽聽聽聽 <param-name>debug</param-name>
聽聽聽聽聽聽聽 <param-value>true</param-value>
聽聽聽 </init-param>
聽</servlet>
聽<servlet-mapping>
聽聽聽 <servlet-name>dwr-invoker</servlet-name>
聽聽聽 <url-pattern>/dwr/*</url-pattern>
聽</servlet-mapping>

聽<welcome-file-list>
聽聽聽 <welcome-file>search.jsp</welcome-file>
聽</welcome-file-list>

2.dwr.xml
聽<dwr>
聽聽聽 <allow><convert convert="bean"聽 match="dwr.sample.Apartment"/>
聽聽聽 <create>
聽聽聽聽聽聽聽聽聽聽 <creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <include method="findApartments"/>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <include method="countApartments"/>
聽聽聽聽聽聽聽聽聽聽 </creator>
聽聽聽 </create>
聽聽聽 </allow>
</dwr>
3.DB
CREATE TABLE APARTMENTS (id INTEGER, bedrooms INTEGER, bathrooms INTEGER, price INTEGER, address VARCHAR, city VARCHAR, province VARCHAR);
INSERT INTO APARTMENTS VALUES (16001, 1, 1, 850, '123 King St. East', 'Toronto', 'ON');
INSERT INTO APARTMENTS VALUES (16002, 2, 1, 1000, '1023 Yonge Ave.', 'Toronto', 'ON');
INSERT INTO APARTMENTS VALUES (16003, 2, 2, 1050, '27 Winchester St.', 'Toronto', 'ON');
4.Apertment.java
鏅氱殑javabean
5.DBUtils.java
聽聽聽鏁版嵁搴撻摼鎺ョ被
聽聽 public class DBUtils {

聽/*
聽 * Creates the sample data (table and records).
聽 */
聽public static void setupDatabase(BufferedReader reader) {
聽聽Connection c = null;
聽聽Statement stmt = null;
聽聽try {
聽聽聽c = openConnection();
聽聽聽stmt = c.createStatement();
聽聽聽// reads the file with the SQL statements
聽聽聽String line;
聽聽聽while ((line = reader.readLine()) != null) {
聽聽聽聽stmt.execute(line);
聽聽聽}
聽聽聽stmt.close();
聽聽聽c.close();
聽聽} catch (IOException e) {
聽聽聽e.printStackTrace();
聽聽} catch (SQLException e) {
聽聽聽e.printStackTrace();
聽聽} finally {
聽聽聽try {
聽聽聽聽stmt.close();
聽聽聽聽c.close();
聽聽聽} catch (SQLException e) {
聽聽聽聽e.printStackTrace();
聽聽聽}
聽聽}
聽}

聽/*
聽 * Opens a database connection.
聽 */
聽public static Connection openConnection() throws SQLException {
聽聽Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:dwr-sample", "sa", "");
聽聽return c;
聽}

}

6.ContextListener.java
聽聽 瀹炵幇浜哠ervletContextListerer鎺ュ彛鐨勭被
聽聽 public class ContextListener implements javax.servlet.ServletContextListener {

聽/**
聽 * This method is invoked when the Web Application has been removed and is
聽 * no longer able to accept requests.
聽 * @param event
聽 */
聽public void contextDestroyed(ServletContextEvent event) {
聽}

聽/**
聽 * This method is invoked when the Web Application is ready to service requests.
聽 * @param event
聽 */
聽public void contextInitialized(ServletContextEvent event) {
聽聽try {
聽聽聽// load the driver
聽聽聽Class.forName("org.hsqldb.jdbcDriver");
聽聽聽// create the table and add sample data
聽聽聽InputStreamReader in = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("db.sql"));
聽聽聽BufferedReader reader = new BufferedReader(in);
聽聽聽DBUtils.setupDatabase(reader);
聽聽} catch (ClassNotFoundException e) {
聽聽聽e.printStackTrace();
聽聽}
聽聽
聽}

}
7.ApartmentDAO.java
聽聽 涓氬姟閫昏緫灞?br />聽聽 public class ApartmentDAO {

聽/**
聽 * Returns the available apartments based on the search criteria.
聽 * @param bedrooms minimum number of bedrooms
聽 * @param bathrooms minimum number of bathrooms
聽 * @param price maximum price to be paid
聽 * @return
聽 */
聽public Collection findApartments(int bedrooms, int bathrooms, int price) {
聽聽Collection list = new Vector();
聽聽String sql = "select * from APARTMENTS" +
聽聽聽聽createSearchWhereClause(bedrooms, bathrooms, price) +
聽聽聽聽"order by bedrooms, bathrooms, price";

聽聽// define db variables
聽聽Connection c = null;
聽聽Statement stmt = null;
聽聽try {
聽聽聽c = DBUtils.openConnection();
聽聽聽stmt = c.createStatement();
聽聽聽// just run the sql statement
聽聽聽ResultSet rs = stmt.executeQuery(sql);
聽聽聽while(rs.next()) {
聽聽聽聽Apartment apartment = this.getApartment(rs);
聽聽聽聽list.add(apartment);
聽聽聽}
聽聽} catch (SQLException e) {
聽聽聽e.printStackTrace();
聽聽} finally {
聽聽聽try {
聽聽聽聽stmt.close();
聽聽聽聽c.close();
聽聽聽} catch (SQLException e) {
聽聽聽聽e.printStackTrace();
聽聽聽}
聽聽}

聽聽return list;
聽}

聽/**
聽 * Returns the number of available apartments based on the search criteria.
聽 * @param bedrooms minimum number of bedrooms
聽 * @param bathrooms minimum number of bathrooms
聽 * @param price maximum price to be paid
聽 * @return
聽 */
聽public int countApartments(int bedrooms, int bathrooms, int price) {
聽聽String sql = "select count(*) as total from APARTMENTS" + createSearchWhereClause(bedrooms, bathrooms, price);
聽聽int numberApartments = -1;
聽聽// define db variables
聽聽Connection c = null;
聽聽Statement stmt = null;
聽聽try {
聽聽聽c = DBUtils.openConnection();
聽聽聽stmt = c.createStatement();
聽聽聽// just run the sql statement
聽聽聽ResultSet rs = stmt.executeQuery(sql);
聽聽聽if (rs.next()) {
聽聽聽聽numberApartments = rs.getInt("total");
聽聽聽}
聽聽} catch (SQLException e) {
聽聽聽e.printStackTrace();
聽聽} finally {
聽聽聽try {
聽聽聽聽stmt.close();
聽聽聽聽c.close();
聽聽聽} catch (SQLException e) {
聽聽聽聽e.printStackTrace();
聽聽聽}
聽聽}
聽聽
聽聽return numberApartments;
聽}

聽/**
聽 * Creates a Unit object from the database.
聽 * @param rs
聽 * @return
聽 * @throws SQLException
聽 */
聽private Apartment getApartment(ResultSet rs) throws SQLException {
聽聽Apartment ap = new Apartment();
聽聽ap.setId(rs.getInt("id"));
聽聽ap.setAddress(rs.getString("address"));
聽聽ap.setBedrooms(rs.getInt("bedrooms"));
聽聽ap.setBathrooms(rs.getInt("bathrooms"));
聽聽ap.setPrice(rs.getInt("price"));
聽聽ap.setCity(rs.getString("city"));
聽聽ap.setProvince(rs.getString("province"));
聽聽return ap;
聽}


聽/**
聽 * Creates the where clause for the search SQL statement.
聽 * @param bedrooms
聽 * @param bathrooms
聽 * @param price
聽 * @return
聽 */
聽private String createSearchWhereClause(int bedrooms, int bathrooms, int price) {
聽聽String where = " where bedrooms >= " + bedrooms +
聽聽聽聽" and bathrooms >= " + bathrooms +
聽聽聽聽" and price < " + price;
聽聽return where;
聽}

}
8. search.jsp
聽 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
聽 <title>DWR Example</title>

聽聽 <style type="text/css" media="screen">
聽聽聽聽聽聽 @import url( style.css );
聽聽 </style>聽

聽 <script src='dwr/interface/ApartmentDAO.js'></script>
聽 <script src='dwr/engine.js'></script>
聽 <script src='dwr/util.js'></script>
聽 <script>

聽 function updateTotal() {
聽聽聽 $("resultTable").style.display = 'none';
聽聽聽 var bedrooms = document.getElementById("bedrooms").value;
聽聽聽 var bathrooms = document.getElementById("bathrooms").value;
聽聽聽 var price = document.getElementById("price").value;
聽聽聽 ApartmentDAO.countApartments(loadTotal, bedrooms, bathrooms, price);
聽 }

聽 function updateResults() {
聽聽聽 DWRUtil.removeAllRows("apartmentsbody");
聽聽聽 var bedrooms = document.getElementById("bedrooms").value;
聽聽聽 var bathrooms = document.getElementById("bathrooms").value;
聽聽聽 var price = document.getElementById("price").value;
聽聽聽 ApartmentDAO.findApartments(fillTable, bedrooms, bathrooms, price);
聽聽聽 $("resultTable").style.display = '';
聽 }

聽 var getId = function(unit) { return unit.id };
聽 var getAddress = function(unit) { return unit.address };
聽 var getBedrooms = function(unit) { return unit.bedrooms };
聽 var getBathrooms = function(unit) { return unit.bathrooms };
聽 var getPrice = function(unit) { return unit.price };
聽聽聽
聽 function loadTotal(data) {
聽聽聽 document.getElementById("totalRecords").innerHTML = data;
聽 }

聽 function fillTable(apartment) {
聽聽聽 DWRUtil.addRows("apartmentsbody", apartment, [ getId, getAddress, getBedrooms, getBathrooms, getPrice ]);
聽 }

</script>

</head>

<body onload="updateTotal();">

<h2>Find an apartment to rent</h2>

<table border="0">
<form name="rentalForm">
聽 <tr width="400">
聽聽 <td width="100">City</td>
聽聽 <td width="300">Toronto</td>
聽 </tr>
聽 <tr>
聽聽 <td>Beds</td>
聽聽 <td>
聽聽聽 <select id="bedrooms" onchange="updateTotal()">
聽聽聽聽 <option value="1">1 or more</option>
聽聽聽聽 <option value="2">2 or more</option>
聽聽聽聽 <option value="3">3 or more</option>
聽聽聽聽 <option value="4">4 or more</option>
聽聽聽 </select>
聽聽 </td>
聽 </tr>

聽 <tr>
聽聽 <td>Baths</td>
聽聽 <td>
聽聽聽 <select id="bathrooms" onchange="updateTotal()">
聽聽聽聽 <option value="1">1 or more</option>
聽聽聽聽 <option value="2">2 or more</option>
聽聽聽聽 <option value="3">3 or more</option>
聽聽聽聽 <option value="4">4 or more</option>
聽聽聽 </select>
聽聽 </td>
聽 </tr>

聽 <tr>
聽聽 <td>Price</td>
聽聽 <td>
聽聽聽 <select id="price" onchange="updateTotal()">
聽聽聽聽 <option value="800">under $800</option>
聽聽聽聽 <option value="1000">under $1,000</option>
聽聽聽聽 <option value="1250">under $1,250</option>
聽聽聽聽 <option value="1500" selected="selected">under $1,500</option>
聽聽聽聽 <option value="1800">under $1,800</option>
聽聽聽聽 <option value="2000">under $2,000</option>
聽聽聽 </select>
聽聽 </td>
聽 </tr>

聽 <tr>
聽聽 <td colspan="2">
聽聽聽 <blockquote>
聽聽聽聽 Available apartments: <span id="totalRecords" style="font-weight:bold;"></span>
聽聽聽 </blockquote>
聽聽 </td>
聽 </tr>

</form>
</table>

<p><input type="button" value="Show results!" onClick="updateResults();"></p>

<div id="resultTable">

<h2>Results</h2>

聽<table border="1">
聽 <thead>
聽聽聽 <tr>
聽聽聽聽聽 <th width="40">Id</th>
聽聽聽聽聽 <th width="180">Address</th>
聽聽聽聽聽 <th width="60">Beds</th>
聽聽聽聽聽 <th width="60">Baths</th>
聽聽聽聽聽 <th width="60">Price</th>
聽聽聽 </tr>
聽 </thead>
聽 <tbody id="apartmentsbody">

聽 </tbody>
聽</table>
</div>

</body>
</html>

鐢變簬欏圭洰闇瑕?闇鍦ㄦ垜浠幇鏈夌殑struts銆乭ibernate宸ョ▼涓婇泦鎴恆jax鍔熻兘.欏圭洰緇勫喅瀹氫嬌鐢―wr.
鍒氬紑濮嬬爺絀禗wr.瑙夊緱鐪熺殑寰堜笉閿? 鍙渶寰堝皯閲忕殑浠g爜,灝辮兘鍦ㄧ幇鏈夌殑宸ョ▼涓婇泦鎴恆jax鎶鏈? 鏈熷緟Dwr鏈夋洿杈夌厡鐨勬槑澶╋紒
鍠滄Dwr鎶鏈殑IT鐣屾湅鍙嬪彲浠ヤ笌鏈漢鑱旂郴錛佹湜鎻愬嚭濂界殑鎰忚涓庡緩璁?



HandSoft 2007-01-21 23:35 鍙戣〃璇勮
]]>
eclipse澧炲姞鍐呭瓨http://www.tkk7.com/gavinju/archive/2006/12/26/90074.htmlHandSoftHandSoftTue, 26 Dec 2006 04:42:00 GMThttp://www.tkk7.com/gavinju/archive/2006/12/26/90074.htmlhttp://www.tkk7.com/gavinju/comments/90074.htmlhttp://www.tkk7.com/gavinju/archive/2006/12/26/90074.html#Feedback0http://www.tkk7.com/gavinju/comments/commentRss/90074.htmlhttp://www.tkk7.com/gavinju/services/trackbacks/90074.htmlBy default, Eclipse will allocate up to 256 megabytes of Java heap memory. This should be ample for all typical development tasks. However, depending on the JRE that you are running, the number of additional plug-ins you are using, and the number of files you will be working with, you could conceivably have to increase this amount. Eclipse allows you to pass arguments directly to the Java VM using the -vmargs command line argument, which must follow all other Eclipse specific arguments. Thus, to increase the available heap memory, you would typically use:

eclipse -vmargs -Xmx<memory size>

with the <memory size> value set to greater than "256M" (256 megabytes -- the default).

When using a Sun VM, you may also need to increase the size of the permanent generation memory. The default maximum is 64 megabytes, but more may be needed depending on your plug-in configuration and use. The maximum permanent generation size is increased using the -XX:MaxPermSize=<memory size> argument:

eclipse -vmargs -XX:MaxPermSize=<memory size>

This argument may not be available for all VM versions and platforms; consult your VM documentation for more details.

Note that setting memory sizes to be larger than the amount of available physical memory on your machine will cause Java to "thrash" as it copies objects back and forth to virtual memory, which will severely degrade your performance.

鍦╡clipse瀹夎鏍圭洰褰曚笅錛岀敤姝ゅ懡浠?聽聽聽 eclipse.exe -vmargs -Xms256M -Xmx512M



HandSoft 2006-12-26 12:42 鍙戣〃璇勮
]]>
Struts+Hibernate瀹炵幇鍒嗛〉http://www.tkk7.com/gavinju/archive/2006/12/08/86218.htmlHandSoftHandSoftThu, 07 Dec 2006 16:53:00 GMThttp://www.tkk7.com/gavinju/archive/2006/12/08/86218.htmlhttp://www.tkk7.com/gavinju/comments/86218.htmlhttp://www.tkk7.com/gavinju/archive/2006/12/08/86218.html#Feedback0http://www.tkk7.com/gavinju/comments/commentRss/86218.htmlhttp://www.tkk7.com/gavinju/services/trackbacks/86218.html1.聽 瑙嗗浘鏄劇ず(select.jsp)錛氶欏德?聽 涓婁竴欏德? 涓嬩竴欏?/ 聽灝鵑〉 ${requestScope.page} / ${requestScope.pagecount}聽 / 杞埌
2.聽 欏甸潰閫昏緫:
聽聽聽聽 <%@ page language="java"%>
<%@ taglib uri="聽prefix="bean"%>
<%@ taglib uri="
聽prefix="html"%>
<
%@taglib uri="<%@taglib uri="
<html>
聽<head>
聽聽<title>JSP for SelectActionForm form</title>
聽聽<script type="javaScript">
function submitForm()
{
聽if(document.form1.selectValue.value=="")
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 alert("璇瘋緭鍏ユ煡鎵懼叧閿瓧");
聽聽聽聽聽聽聽聽聽聽 document.form1.selectValue.focus();
聽聽聽聽聽聽聽聽聽聽 return false;
聽聽聽聽聽聽聽 }else
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽聽 }
}
function toPage()
{
聽 if(document.form1.pageText.value=="")
聽 {
聽聽聽聽聽聽聽聽聽聽聽 alert("璇瘋緭鍏ヨ鍓嶅線鐨勯〉鏁?);
聽聽聽聽聽聽聽聽聽聽 document.form1.pageText.focus();
聽聽聽聽聽聽聽聽聽聽 return false;
聽 }else
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽 a=document.form1.pageText.value;
聽聽聽聽聽聽聽聽聽 if(a<=0||a>=${requestScope.pagecount})
聽聽聽聽聽聽聽聽聽聽聽聽 a=${requestScope.page}
聽聽聽聽聽聽聽聽聽 document.form1.action = "selectAction.do?page="+a+"&selectValue=${requestScope.selectValue}";
聽聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽聽 }
}
</script>
聽</head>
聽<body>
聽聽<center>
聽聽聽<form name="form1" action="selectAction.do" method="POST">
聽聽聽聽<table>
聽聽聽聽聽<tr>
聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽please input:
聽聽聽聽聽聽</td>
聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽<input type="text" name="selectValue"
聽聽聽聽聽聽聽聽value="${requestScope.selectValue}" />
聽聽聽聽聽聽</td>
聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽<input type="submit" onclick="submitForm()" value="search" />
聽聽聽聽聽聽</td>
聽聽聽聽聽</tr>
聽聽聽聽</table>
聽聽聽聽<c:if test="${not empty sessionScope.selectList}">
聽聽聽聽聽<table border="1" cellpadding="3" cellspacing="3">
聽聽聽聽聽聽<tr>
聽聽聽聽聽聽聽<th>
聽聽聽聽聽聽聽聽ID
聽聽聽聽聽聽聽</th>
聽聽聽聽聽聽聽<th>
聽聽聽聽聽聽聽聽Name
聽聽聽聽聽聽聽</th>
聽聽聽聽聽聽聽<th>
聽聽聽聽聽聽聽聽DESC
聽聽聽聽聽聽聽</th>
聽聽聽聽聽聽聽<th>
聽聽聽聽聽聽聽聽Date
聽聽聽聽聽聽聽</th>
聽聽聽聽聽聽聽<th>
聽聽聽聽聽聽聽聽CreateBy
聽聽聽聽聽聽聽</th>
聽聽聽聽聽聽</tr>
聽聽聽聽聽聽<c:forEach var="cddate" items="${sessionScope.selectList}">
聽聽聽聽聽聽聽<tr>
聽聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽聽${cddate.pageCategoryId}
聽聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽聽${cddate.pageItemName}
聽聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽聽${cddate.pageItemDesc}
聽聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽聽${cddate.pageItemDate}
聽聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽聽${cddate.pageItemBy}
聽聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽</tr>
聽聽聽聽聽聽</c:forEach>
聽聽聽聽聽</table>
聽聽聽聽聽<table>
聽聽聽聽聽聽<tr>
聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽<a
聽聽聽聽聽聽聽聽聽href="selectAction.do?action=frist&selectValue=${requestScope.selectValue}">MainPage</a>
聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽<c:if test="${requestScope.page==1}">lastPage</c:if>
聽聽聽聽聽聽聽聽<c:if test="${requestScope.page!=1}">
聽聽聽聽聽聽聽聽聽<a
聽聽聽聽聽聽聽聽聽聽href="selectAction.do?action=back&page=${requestScope.page}&selectValue=${requestScope.selectValue}">lastPage</a>
聽聽聽聽聽聽聽聽</c:if>
聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽<c:if test="${requestScope.page==requestScope.pagecount}">nextPage</c:if>
聽聽聽聽聽聽聽聽<c:if test="${requestScope.page!=requestScope.pagecount}">
聽聽聽聽聽聽聽聽聽<a
聽聽聽聽聽聽聽聽聽聽href="selectAction.do?action=next&page=${requestScope.page}&selectValue=${requestScope.selectValue}">nextPage</a>
聽聽聽聽聽聽聽聽</c:if>
聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽<a
聽聽聽聽聽聽聽聽聽href="selectAction.do?action=end&selectValue=${requestScope.selectValue}">endPage</a>
聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽${requestScope.page} / ${requestScope.pagecount}
聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽changeTo
聽聽聽聽聽聽聽聽<input type="text" size="2" name="pageText"
聽聽聽聽聽聽聽聽聽onkeyup="value=value.replace(/[^\d]/g,'') "
聽聽聽聽聽聽聽聽聽onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
聽聽聽聽聽聽聽聽聽value="${requestScope.page}" />
聽聽聽聽聽聽聽聽<input type="submit" onclick="toPage()" value="GO" />
聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽</tr>
聽聽聽聽聽</table>
聽聽聽聽</c:if>
聽聽聽</form>
聽聽</center>
聽</body>
</html>

3 . struts-config.xml鏂囦歡
聽聽聽聽 <global-forwards>
聽聽聽聽聽聽聽聽聽聽聽 <forward name="select" path="/select.jsp" />
聽聽聽聽 </global-forwards>
聽聽聽聽 <form-beans>
聽聽聽聽聽聽聽聽聽聽聽 <form-bean name="selectActionForm" type="SelectActionForm" />
聽聽聽 </form-beans>
聽聽聽聽 <action-mappings>
聽聽聽聽聽聽聽聽聽聽聽聽 <action input="/select.jsp" name="selectActionForm" path="/selectAction" scope="request" type="SelectAction" validate="true" />
聽聽聽聽 </action-mappings>
4. SelectActionForm.java
聽聽聽 import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
public class SelectActionForm
聽聽聽 extends ActionForm
{
聽聽聽聽 private String pageText;聽聽聽聽聽聽聽聽聽 //欏甸潰緙栫爜聽聽聽
聽聽聽聽 private String selectValue;聽聽聽聽聽聽 //鏌ヨ鏉′歡鍏抽敭瀛?br />聽聽聽聽 public String getPageText()聽聽聽聽 //璺寵漿鍒扮殑欏甸潰
聽聽聽聽 {
聽聽聽聽聽聽聽 聽return pageText;聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽 }
聽聽聽聽 public void setPageText(String pageText)
聽聽聽聽 {
聽聽聽聽聽聽聽聽 this.pageText = pageText;
聽聽聽聽 }
聽聽聽聽 public void setSelectValue(String selectValue)
聽聽聽聽 {
聽聽聽聽聽聽聽 聽this.selectValue = selectValue;
聽聽聽聽 }
聽聽聽聽 public String getSelectValue()
聽聽聽聽 {
聽聽聽聽聽聽聽聽 return selectValue;
聽聽聽聽 }
聽聽聽聽 public ActionErrors validate(ActionMapping actionMapping,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletRequest httpServletRequest)
聽聽聽聽 { /** @todo: finish this method, this is just the skeleton.*/
聽聽聽聽聽聽聽聽 return null;
聽聽聽聽 }
聽聽聽聽 public void reset(ActionMapping actionMapping,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletRequest servletRequest)
聽聽聽聽 {
聽聽聽聽 }
}
5. SelectAction.java
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import com.wang.business.BusinessManage;
import com.wang.module.*;
import java.util.*;
public class SelectAction
聽聽聽 extends Action
{
聽聽聽 public ActionForward execute(ActionMapping mapping, ActionForm form,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletRequest request,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletResponse response)
聽聽聽 {
聽聽聽聽聽聽聽 SelectActionForm selectForm = (SelectActionForm) form;
聽聽聽聽聽聽聽 BusinessManage bm = new BusinessManage();
聽聽聽聽聽聽聽 int page = 1;聽聽聽 //鍒濆鍖栦負絎竴欏?/div>
聽聽聽聽聽聽聽 if (selectForm.getSelectValue() != null)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 // if(request.getParameter("action")!=null)
聽聽聽聽聽聽聽聽聽聽聽 if (request.getParameter("page") == null)
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page = 1;
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page = Integer.parseInt(request.getParameter("page"));
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 if (selectForm.getPageText() != null)
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page = Integer.parseInt(selectForm.getPageText());
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 if (request.getParameter("action") != null)
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (request.getParameter("action").equals("frist")) 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {聽聽 //璺寵漿鍒伴欏?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page = 1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else if (request.getParameter("action").equals("end"))聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //璺寵漿鍒板熬欏?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page = bm.PAGECOUNT;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else if (request.getParameter("action").equals("back"))聽聽聽聽聽聽聽聽聽聽聽聽聽 //璺寵漿鍒頒笂涓欏?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page -= 1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else if (request.getParameter("action").equals("next"))聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //璺寵漿鍒頒笅涓欏?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page += 1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 List list = bm.selectCDBean(selectForm.getSelectValue(), page, 5);聽聽 //欏甸潰浼犻掍笁涓弬鏁?灝嗗彇寰楃殑鍊煎瓨鏀句簬涓涓猯ist鍒楄〃涓?br />聽聽聽聽聽聽聽聽聽聽聽 // ArrayList list1 = new ArrayList(list);
聽聽聽聽聽聽聽聽聽聽聽 request.getSession().setAttribute("selectList", list);聽聽聽聽 //灝嗛〉鐮侀泦鍚堝彉閲忓瓨鏀句簬瀛楃涓插彉閲弒electList涓?瀛樻斁浜巗ession鑼冨洿鍐?br />聽聽聽聽聽聽聽聽聽聽聽 int pagecount = bm.PAGECOUNT;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //欏甸潰鎬繪暟
聽聽聽聽聽聽聽聽聽聽聽 request.setAttribute("pagecount", pagecount);
聽聽聽聽聽聽聽聽聽聽聽 request.getSession().removeAttribute("selectList");
聽聽聽聽聽聽聽聽聽聽聽 request.getSession().setAttribute("selectList", list);
聽聽聽聽聽聽聽聽聽聽聽 request.setAttribute("selectValue", selectForm.getSelectValue());
聽聽聽聽聽聽聽聽聽聽聽 request.setAttribute("page", page);
聽聽聽聽聽聽聽聽聽聽聽 request.setAttribute("pagecount", pagecount);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 request.getSession().removeAttribute("selectList");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 bm.close();
聽聽聽聽聽聽聽 return mapping.findForward("select");
聽聽聽 }
}

6. 涓氬姟閫昏緫
BusinessManage.java
package com.wang.business;
import org.hibernate.*;
import org.hibernate.cfg.*;
import com.wang.module.*;
import java.util.*;
public class BusinessManage
{
聽聽聽 private SessionFactory sf = null;
聽聽聽 private Session s = null;
聽聽聽 private Transaction ts = null;
聽聽聽 private Query query = null;
聽聽聽 public static int PAGECOUNT;
聽聽聽 public BusinessManage()
聽聽聽 {
聽聽聽聽聽聽聽 sf = new Configuration().configure().buildSessionFactory();
聽聽聽聽聽聽聽 s = sf.openSession();
聽聽聽聽聽聽聽 ts = s.beginTransaction();
聽聽聽 }
聽聽聽 public void openSession()
聽聽聽 {
聽聽聽聽聽聽聽 s = sf.openSession();
聽聽聽 }
聽聽聽
聽聽聽 public List selectCDBean(String value, int page, int count)
聽聽聽 {
聽聽聽聽聽聽聽 List list = null;
聽聽聽聽聽聽聽 int pagelast = 0;
聽聽聽聽聽聽聽 try
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 query = s.createQuery("from ViewPage cd where cd.pageItemName like '%"
聽聽聽聽聽+ value + "%'");
聽聽聽聽聽聽聽聽聽聽聽 if (query.list().size() / count聽== 0)聽聽 //欏墊暟涓哄伓鏁?br />聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 PAGECOUNT = query.list().size() / count;聽 //欏甸潰鎬繪暟
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 PAGECOUNT = query.list().size() / count + 1;聽聽 //欏墊暟涓哄熀鏁?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 pagelast = query.list().size() / count;
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 int begin = page * count - count;聽聽 //count涓烘瘡欏墊樉紺虹殑綰綍鏁?
聽聽聽聽聽聽聽聽聽聽聽 int end = page * count;
聽聽聽聽聽聽聽聽聽聽聽 if (page == PAGECOUNT)
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 end = query.list().size();
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 list = query.list().subList(begin, end);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 catch (Exception ex)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 list = null;
聽聽聽聽聽聽聽聽聽聽聽 ex.printStackTrace();
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 return list;
聽聽聽 }
聽聽聽
聽聽聽 public void close()
聽聽聽 {
聽聽聽聽聽聽聽 s.close();
聽聽聽 }
}




HandSoft 2006-12-08 00:53 鍙戣〃璇勮
]]>縐戜互浜洪噸縐戜害閲嶏紝浜轟互縐戜紶浜哄彲鐭?/title><link>http://www.tkk7.com/gavinju/archive/2006/09/27/72295.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Wed, 27 Sep 2006 06:16:00 GMT</pubDate><guid>http://www.tkk7.com/gavinju/archive/2006/09/27/72295.html</guid><wfw:comment>http://www.tkk7.com/gavinju/comments/72295.html</wfw:comment><comments>http://www.tkk7.com/gavinju/archive/2006/09/27/72295.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/gavinju/comments/commentRss/72295.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/gavinju/services/trackbacks/72295.html</trackback:ping><description><![CDATA[ <p>聽聽聽聽聽聽聽 鏈漢姣曚笟浜庤タ瀹夌數(shù)瀛愮鎶澶у錛屾湰縐戙傜儹鐖辮蔣浠跺紑鍙戯紝綺鵑欽AVA .鐔熸?zhèn)塖truts,Spring,Hibernate,Jboss,Eclipse絳夊縐嶅紑婧愭妧鏈?br />鐜頒富瑕佷粠浜嬩簬Oracle鐩稿叧浜у搧鐨勫紑鍙戙傛湁鐫ERP,CRM,MES緋葷粺鐨勫紑鍙戠粡楠岋紝鐩墠姝g潃鎵嬩簬Struts涓嶢jax鎶鏈殑闆嗘垚緋葷粺鐨勫紑鍙戯紝<br />瀹樻柟緇欏嚭鐨凙jaxTags涔熷彧鏄祴璇曠増錛屾鎶鏈澶勪簬璧鋒闃舵銆傛湜瀵規(guī)鎶鏈湁鐮旂┒鐨勬湅鍙嬩笌鎴戣仈緋伙紝緇欏嚭鎸囩偣銆?br />鐪熻瘹緇撲氦IT灞婂悓浠侊紝鍏卞悓瀛︿範錛屽叡鍚屼氦嫻併傛瀯寤哄拰璋愮ぞ浼氥?br />QQ: 541638655<br />MSN: <a href="mailto:jucracker@hotmail.com">jucracker@hotmail.com</a><br />Phone: 13817080595</p> <img src ="http://www.tkk7.com/gavinju/aggbug/72295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/gavinju/" target="_blank">HandSoft</a> 2006-09-27 14:16 <a href="http://www.tkk7.com/gavinju/archive/2006/09/27/72295.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java API涓枃鐗堜笅杞?/title><link>http://www.tkk7.com/gavinju/archive/2006/07/28/60472.html</link><dc:creator>HandSoft</dc:creator><author>HandSoft</author><pubDate>Fri, 28 Jul 2006 01:33:00 GMT</pubDate><guid>http://www.tkk7.com/gavinju/archive/2006/07/28/60472.html</guid><wfw:comment>http://www.tkk7.com/gavinju/comments/60472.html</wfw:comment><comments>http://www.tkk7.com/gavinju/archive/2006/07/28/60472.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/gavinju/comments/commentRss/60472.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/gavinju/services/trackbacks/60472.html</trackback:ping><description><![CDATA[ <h2> <font style="BACKGROUND-COLOR: #0000ff">寮曡█:</font> </h2> <p> <font style="BACKGROUND-COLOR: #0000ff">聽聽聽聽聽聽聽聽 濡傛灉璇存垜榪欎袱騫村湪Sun鍏徃浣滀簡鍝簺瀵逛腑鍥藉紑鍙戜漢鍛樻湁鐩婄殑浜嬬殑璇濓紝鎴戞兂Java API鏂囨。涓枃鐗堟鏃犵枒闂殑搴旇綆楃涓涓傛垜闈炲父娓呮浠嶇劧鏈変紬澶氬紑鍙戜漢鍛樺潥鎸佽涓轟竴涓ソ鐨勭▼搴忓憳搴旇瀹屽叏鍙傝冭嫳鏂囩増鐨勬枃妗o紝浣嗘槸鎴戝潥淇¤鏂囨。鐨勪腑鏂囩増鏈夊叾瀛樺湪鐨勬剰涔夛紝鍥犱負 Java浣滀負涓縐嶇▼搴忚璁¤璦錛屾垜浠笇鏈涜兘澶熸湁鏇村鐨勫紑鍙戜漢鍛樷斺旇屼笉浠呬粎鏄偅浜涜兘澶熺啛緇冮槄璇昏嫳璇殑娓呭崕鍖楀ぇ姣曚笟鐢熲斺旀潵浣跨敤瀹冿紝鎺屾彙瀹冿紝綺鵑氬畠銆?/font> </p> <p> <font style="BACKGROUND-COLOR: #0000ff">涔熷彲浠ヨ繖涔堣錛孞ava璇█鐨勫墠閫旓紝鏇村鍙栧喅浜庤崏鏍癸紝鑰屼笉鏄簿鑻便?/font> </p> <p align="right"> <a > <font style="BACKGROUND-COLOR: #0000ff" color="#002c99">鈥斺擲un涓浗鎶鏈ぞ鍖烘昏礋璐d漢錛岃拫娓呴噹</font> </a> </p> <br /> <font style="BACKGROUND-COLOR: #0000ff">聽聽聽聽聽聽聽聽 Java API Docs鏄涔犲拰浣跨敤Java璇█涓渶緇忓父浣跨敤鐨勫弬鑰冭祫鏂欎箣涓錛屽畬鏁寸殑Java API鏂囨。涓枃鐗堟枃妗e叡鍖呮嫭32涓被搴撱備絾鏄暱鏈熶互鏉ユ鏂囨。鍙湁鑻辨枃鐗堝拰鏃ユ枃鐗堬紝瀵逛簬涓浗鍦板尯鐨凧ava寮鍙戣呮潵璇寸浉褰撶殑涓嶄究銆傞氳繃Sun鍏徃鐨勭炕璇戝洟闃?0涓湀鐨勪笉鎳堝姫鍔涗互鍙婂箍澶х綉鍙嬬殑鐑績鏀寔錛孞ava API涓枃鏂囨。鐨勭炕璇戝伐浣滃鏈熷畬鎴愶紝鍛堢幇鍒頒腑鍥藉箍澶х殑Java鐢ㄦ埛鍜屽涔犺呴潰鍓?br /><br /><a >http://java.csdn.net/subject/Java%20API/index.html</a></font> <img src ="http://www.tkk7.com/gavinju/aggbug/60472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/gavinju/" target="_blank">HandSoft</a> 2006-07-28 09:33 <a href="http://www.tkk7.com/gavinju/archive/2006/07/28/60472.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Open Workbenchhttp://www.tkk7.com/gavinju/archive/2006/07/28/60469.htmlHandSoftHandSoftFri, 28 Jul 2006 01:28:00 GMThttp://www.tkk7.com/gavinju/archive/2006/07/28/60469.htmlhttp://www.tkk7.com/gavinju/comments/60469.htmlhttp://www.tkk7.com/gavinju/archive/2006/07/28/60469.html#Feedback0http://www.tkk7.com/gavinju/comments/commentRss/60469.htmlhttp://www.tkk7.com/gavinju/services/trackbacks/60469.html聽Open Workbench錛歁S Project鐨勬潃鎵?br />鏉ヨ嚜寮婧愮ぞ鍖虹殑Open Workbench鏈夌潃涓嶮icrosoft Project鐩稿尮鏁岀殑涓板瘜鍔熻兘銆傝櫧鐒跺畠榪樹笉鑳藉儚Microsoft Project閭f牱錛屾彁渚涙敮鎸丆/S緇撴瀯涓嬬殑浼佷笟綰у浜哄崗浣滅殑欏圭洰綆$悊妯″紡銆備絾鍦ㄥ崟浜轟嬌鐢ㄧ殑鎯呭喌涓嬶紝鍙互婊¤凍澶氭暟寮鍙戝洟闃熺殑欏圭洰綆$悊闇姹傘?img height="94" alt="t_IBM.jpg" src="http://www.tkk7.com/images/blogjava_net/gavinju/13429/t_IBM.jpg" width="120" border="0" />



HandSoft 2006-07-28 09:28 鍙戣〃璇勮
]]>
Compiere ERP&CRMhttp://www.tkk7.com/gavinju/archive/2006/07/27/60410.htmlHandSoftHandSoftThu, 27 Jul 2006 11:54:00 GMThttp://www.tkk7.com/gavinju/archive/2006/07/27/60410.htmlhttp://www.tkk7.com/gavinju/comments/60410.htmlhttp://www.tkk7.com/gavinju/archive/2006/07/27/60410.html#Feedback0http://www.tkk7.com/gavinju/comments/commentRss/60410.htmlhttp://www.tkk7.com/gavinju/services/trackbacks/60410.html Compiere ERP&CRM涓哄叏鐞冭寖鍥村唴鐨勪腑灝忓瀷浼佷笟鎻愪緵緇煎悎鍨嬭В鍐蟲柟妗堬紝瑕嗙洊浠庡鎴風鐞嗐佷緵搴旈摼鍒拌儲鍔$鐞嗙殑鍏ㄩ儴棰嗗煙錛屾敮鎸佸緇勭粐銆佸甯佺銆佸浼氳妯″紡銆佸鎴愭湰璁$畻銆佸璇銆佸紼庡埗絳夊浗闄呭寲鐗規(guī)с傛槗浜庡畨瑁呫佹槗浜庡疄鏂姐佹槗浜庝嬌鐢ㄣ傚彧闇瑕佺煭鐭嚑涓皬鏃訛紝鎮(zhèn)ㄥ氨鍙互浣跨敤鐢寵喘-閲囪喘-鍙戠エ-浠樻銆佹姤浠?璁㈠崟-鍙戠エ-鏀舵銆佷駭鍝佷笌瀹氫環(huán)銆佽祫浜х鐞嗐佸鎴峰叧緋匯佷緵搴斿晢鍏崇郴銆佸憳宸ュ叧緋匯佺粡钀ヤ笟緇╁垎鏋愮瓑寮哄ぇ鍔熻兘浜嗐?br />聽
涓婚〉http://www.compiere.org/


HandSoft 2006-07-27 19:54 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 中文毛片无遮挡高潮免费| 亚洲va久久久噜噜噜久久| 亚在线观看免费视频入口| 看全免费的一级毛片| 亚洲w码欧洲s码免费| 亚洲久本草在线中文字幕| 中文字幕亚洲电影| 日本19禁啪啪无遮挡免费动图| 在线美女免费观看网站h| 亚洲国产天堂久久综合| 一本无码人妻在中文字幕免费 | 精品国产污污免费网站aⅴ| 国产大片免费天天看| 国产精品亚洲天堂| 亚洲人成人无码.www石榴| 亚洲午夜一区二区电影院| 亚洲高清在线观看| 亚洲精品tv久久久久久久久| 免费一级毛片在级播放| 免费高清在线影片一区| 性色av无码免费一区二区三区| 最近的中文字幕大全免费8| 免费人成在线观看网站| 国产精品午夜免费观看网站| 无码免费又爽又高潮喷水的视频| 亚洲精品无码久久久久APP| 亚洲色成人四虎在线观看| 亚洲精品福利你懂| 2020年亚洲天天爽天天噜| 91亚洲国产成人久久精品网址| 亚洲视频在线不卡| 亚洲人成电影在线观看青青| 亚洲成人福利在线观看| 亚洲成a人片在线观看中文!!!| 亚洲综合久久久久久中文字幕| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲校园春色小说| 亚洲欧洲精品视频在线观看| 亚洲黄色网址在线观看| 亚洲无线一二三四区| 亚洲中文字幕乱码一区|