锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合激情五月色一区,久久综合九九亚洲一区,亚洲精品伦理熟女国产一区二区http://m.tkk7.com/gavinju/archive/2007/04/11/109836.htmlHandSoftHandSoftWed, 11 Apr 2007 02:40:00 GMThttp://m.tkk7.com/gavinju/archive/2007/04/11/109836.htmlhttp://m.tkk7.com/gavinju/comments/109836.htmlhttp://m.tkk7.com/gavinju/archive/2007/04/11/109836.html#Feedback0http://m.tkk7.com/gavinju/comments/commentRss/109836.htmlhttp://m.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://m.tkk7.com/gavinju/archive/2007/01/21/95188.htmlHandSoftHandSoftSun, 21 Jan 2007 15:35:00 GMThttp://m.tkk7.com/gavinju/archive/2007/01/21/95188.htmlhttp://m.tkk7.com/gavinju/comments/95188.htmlhttp://m.tkk7.com/gavinju/archive/2007/01/21/95188.html#Feedback0http://m.tkk7.com/gavinju/comments/commentRss/95188.htmlhttp://m.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://m.tkk7.com/gavinju/archive/2006/12/26/90074.htmlHandSoftHandSoftTue, 26 Dec 2006 04:42:00 GMThttp://m.tkk7.com/gavinju/archive/2006/12/26/90074.htmlhttp://m.tkk7.com/gavinju/comments/90074.htmlhttp://m.tkk7.com/gavinju/archive/2006/12/26/90074.html#Feedback0http://m.tkk7.com/gavinju/comments/commentRss/90074.htmlhttp://m.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://m.tkk7.com/gavinju/archive/2006/12/08/86218.htmlHandSoftHandSoftThu, 07 Dec 2006 16:53:00 GMThttp://m.tkk7.com/gavinju/archive/2006/12/08/86218.htmlhttp://m.tkk7.com/gavinju/comments/86218.htmlhttp://m.tkk7.com/gavinju/archive/2006/12/08/86218.html#Feedback0http://m.tkk7.com/gavinju/comments/commentRss/86218.htmlhttp://m.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://m.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://m.tkk7.com/gavinju/archive/2006/09/27/72295.html</guid><wfw:comment>http://m.tkk7.com/gavinju/comments/72295.html</wfw:comment><comments>http://m.tkk7.com/gavinju/archive/2006/09/27/72295.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/gavinju/comments/commentRss/72295.html</wfw:commentRss><trackback:ping>http://m.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://m.tkk7.com/gavinju/aggbug/72295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/gavinju/" target="_blank">HandSoft</a> 2006-09-27 14:16 <a href="http://m.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://m.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://m.tkk7.com/gavinju/archive/2006/07/28/60472.html</guid><wfw:comment>http://m.tkk7.com/gavinju/comments/60472.html</wfw:comment><comments>http://m.tkk7.com/gavinju/archive/2006/07/28/60472.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.tkk7.com/gavinju/comments/commentRss/60472.html</wfw:commentRss><trackback:ping>http://m.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://m.tkk7.com/gavinju/aggbug/60472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/gavinju/" target="_blank">HandSoft</a> 2006-07-28 09:33 <a href="http://m.tkk7.com/gavinju/archive/2006/07/28/60472.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Open Workbenchhttp://m.tkk7.com/gavinju/archive/2006/07/28/60469.htmlHandSoftHandSoftFri, 28 Jul 2006 01:28:00 GMThttp://m.tkk7.com/gavinju/archive/2006/07/28/60469.htmlhttp://m.tkk7.com/gavinju/comments/60469.htmlhttp://m.tkk7.com/gavinju/archive/2006/07/28/60469.html#Feedback0http://m.tkk7.com/gavinju/comments/commentRss/60469.htmlhttp://m.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://m.tkk7.com/images/blogjava_net/gavinju/13429/t_IBM.jpg" width="120" border="0" />



HandSoft 2006-07-28 09:28 鍙戣〃璇勮
]]>
Compiere ERP&CRMhttp://m.tkk7.com/gavinju/archive/2006/07/27/60410.htmlHandSoftHandSoftThu, 27 Jul 2006 11:54:00 GMThttp://m.tkk7.com/gavinju/archive/2006/07/27/60410.htmlhttp://m.tkk7.com/gavinju/comments/60410.htmlhttp://m.tkk7.com/gavinju/archive/2006/07/27/60410.html#Feedback0http://m.tkk7.com/gavinju/comments/commentRss/60410.htmlhttp://m.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 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 一级a性色生活片久久无少妇一级婬片免费放 | 黄色一级视频免费| 免费看少妇作爱视频| 亚洲一区二区三区乱码在线欧洲| 69堂人成无码免费视频果冻传媒| 亚洲男人天堂影院| 中字幕视频在线永久在线观看免费| 国产一级在线免费观看| 久久久无码精品亚洲日韩软件 | 久久丫精品国产亚洲av不卡 | 青草青草视频2免费观看| 免费观看日本污污ww网站一区| 视频一区在线免费观看| 亚洲第一黄色网址| 国产真人无码作爱免费视频| 国产亚洲精品一品区99热| 2019中文字幕免费电影在线播放| 亚洲成a人一区二区三区| 久久久久久久国产免费看| 亚洲av不卡一区二区三区| 中文字幕在线免费观看| 亚洲人AV在线无码影院观看| 免费久久精品国产片香蕉| 亚洲伊人久久大香线蕉结合| 免费被黄网站在观看| 中文字幕在线成人免费看| 337p日本欧洲亚洲大胆色噜噜 | 亚洲AV成人精品一区二区三区| 大胆亚洲人体视频| 亚洲一线产品二线产品| 日日操夜夜操免费视频| a级片免费在线播放| 亚洲一区电影在线观看| 亚洲AV成人精品日韩一区18p| 免费在线看污视频| 亚洲欧美日韩中文无线码| 亚洲午夜久久久影院| 最近2019中文免费字幕| 国产精品无码永久免费888| 亚洲国产成人精品青青草原| 国产精品V亚洲精品V日韩精品|