锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲精品高潮综合色a片,亚洲精品国精品久久99热一,亚洲综合在线另类色区奇米http://www.tkk7.com/gdufo/category/32634.htmlzh-cnTue, 30 Sep 2008 02:17:03 GMTTue, 30 Sep 2008 02:17:03 GMT60Struts2 涓?Result鐨?Chain Result,Redirect Action Result,Redirect Result 涓夎呬箣闂寸殑鍖哄埆http://www.tkk7.com/gdufo/archive/2008/09/28/231621.htmlgdufogdufoSun, 28 Sep 2008 03:09:00 GMThttp://www.tkk7.com/gdufo/archive/2008/09/28/231621.htmlhttp://www.tkk7.com/gdufo/comments/231621.htmlhttp://www.tkk7.com/gdufo/archive/2008/09/28/231621.html#Feedback0http://www.tkk7.com/gdufo/comments/commentRss/231621.htmlhttp://www.tkk7.com/gdufo/services/trackbacks/231621.html闃呰鍏ㄦ枃

gdufo 2008-09-28 11:09 鍙戣〃璇勮
]]>
eXtremeComponents瀹夎閰嶇疆http://www.tkk7.com/gdufo/archive/2008/09/04/227052.htmlgdufogdufoThu, 04 Sep 2008 12:35:00 GMThttp://www.tkk7.com/gdufo/archive/2008/09/04/227052.htmlhttp://www.tkk7.com/gdufo/comments/227052.htmlhttp://www.tkk7.com/gdufo/archive/2008/09/04/227052.html#Feedback0http://www.tkk7.com/gdufo/comments/commentRss/227052.htmlhttp://www.tkk7.com/gdufo/services/trackbacks/227052.html闃呰鍏ㄦ枃

gdufo 2008-09-04 20:35 鍙戣〃璇勮
]]>
The Yahoo! User Interface Library (YUI)http://www.tkk7.com/gdufo/archive/2008/08/28/225416.htmlgdufogdufoThu, 28 Aug 2008 13:23:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/28/225416.htmlhttp://www.tkk7.com/gdufo/comments/225416.htmlhttp://www.tkk7.com/gdufo/archive/2008/08/28/225416.html#Feedback0http://www.tkk7.com/gdufo/comments/commentRss/225416.htmlhttp://www.tkk7.com/gdufo/services/trackbacks/225416.html闃呰鍏ㄦ枃

gdufo 2008-08-28 21:23 鍙戣〃璇勮
]]>
JS鐨勬鍒欒〃杈懼紡http://www.tkk7.com/gdufo/archive/2008/08/26/224883.htmlgdufogdufoTue, 26 Aug 2008 14:57:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/26/224883.htmlhttp://www.tkk7.com/gdufo/comments/224883.htmlhttp://www.tkk7.com/gdufo/archive/2008/08/26/224883.html#Feedback0http://www.tkk7.com/gdufo/comments/commentRss/224883.htmlhttp://www.tkk7.com/gdufo/services/trackbacks/224883.html闃呰鍏ㄦ枃

gdufo 2008-08-26 22:57 鍙戣〃璇勮
]]>
Appfuse 涓嬌鐢ㄥ埌鐨?DisplayTaghttp://www.tkk7.com/gdufo/archive/2008/08/25/224250.htmlgdufogdufoMon, 25 Aug 2008 11:53:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/25/224250.htmlhttp://www.tkk7.com/gdufo/comments/224250.htmlhttp://www.tkk7.com/gdufo/archive/2008/08/25/224250.html#Feedback0http://www.tkk7.com/gdufo/comments/commentRss/224250.htmlhttp://www.tkk7.com/gdufo/services/trackbacks/224250.html闃呰鍏ㄦ枃

gdufo 2008-08-25 19:53 鍙戣〃璇勮
]]>
Filter涓巌nterceptor鐨勫尯鍒?http://www.tkk7.com/gdufo/archive/2008/08/18/222866.htmlgdufogdufoMon, 18 Aug 2008 11:51:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/18/222866.html闃呰鍏ㄦ枃

gdufo 2008-08-18 19:51 鍙戣〃璇勮
]]>
瀹炴垬Struts-Menu(5)http://www.tkk7.com/gdufo/archive/2008/08/05/220180.htmlgdufogdufoTue, 05 Aug 2008 07:07:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/05/220180.html
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="struts-menu" prefix="menu" %>

<p>娌℃湁浣跨敤Bundle鍜屾潈闄愭帶鍒?
<menu:useMenuDisplayer name="ListMenu" repository="examplesRepository">
    
<menu:displayMenu name="DatabaseMenu"/>
    
<menu:displayMenu name="StandaloneMenu"/>
</menu:useMenuDisplayer></p>

<p>浣跨敤Bundle, 娌℃湁浣跨敤鏉冮檺鎺у埗:
<menu:useMenuDisplayer name="ListMenu" bundle="examplesBundle" repository="examplesRepository">
    
<menu:displayMenu name="DatabaseMenu"/>
    
<menu:displayMenu name="StandaloneMenu"/>
</menu:useMenuDisplayer></p>

<p>浣跨敤Bundle鍜屾潈闄愭帶鍒?
<menu:useMenuDisplayer name="ListMenu" permissions="examplesPermession"  bundle="examplesBundle" repository="examplesRepository">
    
<menu:displayMenu name="DatabaseMenu"/>
    
<menu:displayMenu name="StandaloneMenu"/>
</menu:useMenuDisplayer></p>

涓冦佸叧浜嶴truts-Menu閰嶇疆鏂囦歡鍜孉PI鐨勪嬌鐢ㄦ柟娉曪紝璇峰弬鑰冮檮褰曚腑鐨勫畼鏂圭綉绔?/p>


闄勶細
Struts-Menu瀹樻柟緗戠珯錛?a >http://struts-menu.sourceforge.net
鏁版嵁搴撻┍鍔ㄧ殑鍔ㄦ佽彍鍗曪細http://demo.raibledesigns.com/struts-menu/dynamicMenu.jsp



gdufo 2008-08-05 15:07 鍙戣〃璇勮
]]>
瀹炴垬Struts-Menu錛?)http://www.tkk7.com/gdufo/archive/2008/08/05/220178.htmlgdufogdufoTue, 05 Aug 2008 07:05:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/05/220178.html/**
     * 浠庢暟鎹簱涓鍙栬彍鍗曢厤緗俊鎭?br />      * 
     * 
@return
     
*/
    
private Map[] getMenuComponents() {
        ArrayList list 
= new ArrayList();
        Connection conn 
= null;
        PreparedStatement pstmt 
= null;
        ResultSet rest 
= null;
        String sql 
= "select name,parent_name,title,location,description from menu_item order by id";
        
try {
            Class.forName(
"com.mysql.jdbc.Driver").newInstance();
            conn 
= DriverManager.getConnection("jdbc:mysql://localhost/myexamples?user=root&password=mywangya&useUnicode=true&characterEncoding=UTF-8");
            pstmt 
= conn.prepareStatement(sql);
            rest 
= pstmt.executeQuery();
            
while (rest.next()) {
                
int i = 1;
                HashMap map 
= new HashMap();
                map.put(
"name", rest.getString(i++));
                map.put(
"parent_name", rest.getString(i++));
                map.put(
"title", rest.getString(i++));
                map.put(
"location", rest.getString(i++));
                map.put(
"description", rest.getString(i++));
                list.add(map);
            }
        } 
catch (SQLException ex) {
            ex.printStackTrace();
        } 
catch (InstantiationException e) {
            e.printStackTrace();
        } 
catch (IllegalAccessException e) {
            e.printStackTrace();
        } 
catch (ClassNotFoundException e) {
            e.printStackTrace();
        } 
finally {
            
try {
                
if (null!=rest) rest.close();
                
if (null!=pstmt) pstmt.close();
                
if (null!=conn) conn.close();
            } 
catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        
return (Map[]) list.toArray(new HashMap[0]);
    }
    
    
/**
     * 鏋勯犺彍鍗曟潈闄?br />      * 
     * 
@param request
     
*/
    
private void buildMenuPermissions(HttpServletRequest request) {
        PermissionsAdapter permession 
= new PermissionsAdapter() {
            
public boolean isAllowed(MenuComponent menu) {
                
// 鍚嶇О絳変簬StandaloneMenu鐨勮彍鍗曚笉鏄劇ず
                return !"StandaloneMenu".equalsIgnoreCase(menu.getName());
            }
        };
        request.setAttribute(
"examplesPermession", permession);
    }

    
/**
     * 鏋勯犺彍鍗曟樉紺烘爣棰?br />      * 
     * 
@param request
     
*/
    
private void buildMenuResourceBundle(HttpServletRequest request) {
        MenuResourceBundle resourceBundle 
= new MenuResourceBundle();
        request.setAttribute(
"examplesBundle", resourceBundle);
    }
    
    
/**
     * MenuResourceBundle鏍戠姸鑿滃崟鍥介檯璇█鏄劇ず
     * 
     * 
@author wenbin.zhang
     *  
     
*/
    
class MenuResourceBundle extends ListResourceBundle {
        
private ArrayList list = new ArrayList();

        
public MenuResourceBundle() {
            Connection conn 
= null;
            PreparedStatement pstmt 
= null;
            ResultSet rest 
= null;
            String sql 
= "select title,titleCN from menu_item order by id";
            
try {
                Class.forName(
"com.mysql.jdbc.Driver").newInstance();
                conn 
= DriverManager.getConnection("jdbc:mysql://localhost/myexamples?user=root&password=mywangya&useUnicode=true&characterEncoding=UTF-8");
                pstmt 
= conn.prepareStatement(sql);
                rest 
= pstmt.executeQuery();
                
while (rest.next()) {
                    
int i = 1;
                    String[] message 
= new String[2];
                    message[
0= rest.getString(i++);
                    
try {
                        message[
1= new String(rest.getString(i++).getBytes("latin1"), "gbk");
                    } 
catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                    
if (message[0!= null && message[1!= null) {
                        list.add(message);
                    }
                }
            } 
catch (SQLException ex) {
                ex.printStackTrace();
            } 
catch (InstantiationException e) {
                e.printStackTrace();
            } 
catch (IllegalAccessException e) {
                e.printStackTrace();
            } 
catch (ClassNotFoundException e) {
                e.printStackTrace();
            } 
finally {
                
try {
                    
if (null!=rest) rest.close();
                    
if (null!=pstmt) pstmt.close();
                    
if (null!=conn) conn.close();
                } 
catch (SQLException e) {
                    e.printStackTrace();
                }
            }

        }

        
public Object[][] getContents() {
            
return (String[][]) list.toArray(new String[0][0]);
        }
    }
}

> 灝唖truts-config.xml鏂囦歡鐨?lt;action-mappings />閮ㄥ垎淇敼涓猴細
<action-mappings>
  
<action path="/menuAction" type="cn.appex.menu.MenuAction" >
    
<forward name="success" path="/struts-menu/dynamic-menu.jsp" />
  
</action>
</action-mappings>


gdufo 2008-08-05 15:05 鍙戣〃璇勮
]]>
瀹炴垬Struts-Menu(3)http://www.tkk7.com/gdufo/archive/2008/08/05/220175.htmlgdufogdufoTue, 05 Aug 2008 07:02:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/05/220175.html
INSERT INTO menu_item
    (id
, parent_name, name, title, titleCN, location)
VALUES
    (
1,null,'DatabaseMenu','Database Menu','鏁版嵁搴撳姩鎬佽彍鍗?,null),
    (
2,'DatabaseMenu','Yahoo','Yahoo Mail','闆呰檸閭歡','http://mail.yahoo.com'),
    (
3,'DatabaseMenu','JavaBlogs','JavaBlogs','Java鍗氬','http://javablogs.com'),
    (
4,null,'StandaloneMenu','Standalone Menu','鐙珛鐨勮彍鍗?,'http://www.sohu.com')
> 灝嗘暟鎹簱椹卞姩紼嬪簭鏀懼埌lib鐩綍涓紝騫跺姞鍏ュ埌Build Path錛屽MySQL鐨勬暟鎹簱椹卞姩mysql-connector-java-3.1.8-bin.jar錛岃В鍘嬬緝commons- collections-3.1.zip錛屽皢commons-collections-3.1.jar閲婃斁鍒發ib鐩綍錛屽茍鍔犲叆Build Path
  > 鏂板緩涓涓猄truts鐨凙ction錛屼唬鐮佸涓嬶細

package cn.appex.menu;

import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.ListResourceBundle;
import java.util.Map;

import com.mysql.jdbc.Driver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.navigator.menu.MenuComponent;
import net.sf.navigator.menu.MenuRepository;
import net.sf.navigator.menu.PermissionsAdapter;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class MenuAction extends Action {
    
public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            
throws Exception {
        buildMenuRepository(request);
        buildMenuResourceBundle(request);
        buildMenuPermissions(request);
        
return (mapping.findForward("success"));
    }

    
/**
     * 鍒涘緩鑿滃崟鏁版嵁緇撴瀯
     * 
     * 
@param request
     
*/
    
private void buildMenuRepository(HttpServletRequest request) {
        MenuRepository repository 
= new MenuRepository();
        
// Get the repository from the application scope - and copy the
        
// DisplayerMappings from it.
        MenuRepository defaultRepository = (MenuRepository) request
                .getSession().getServletContext().getAttribute(
                        MenuRepository.MENU_REPOSITORY_KEY);
        repository.setDisplayers(defaultRepository.getDisplayers());

        Map[] menus 
= getMenuComponents();
        
for (int i=0; i < menus.length; i++) {
            MenuComponent mc 
= new MenuComponent();
            Map row 
= menus[i];
            String name 
= (String) row.get("name");
            mc.setName(name);
            String parent 
= (String) row.get("parent_name");
            System.out.println(name 
+ ", parent is: " + parent);
            
if (parent != null) {
                MenuComponent parentMenu 
= repository.getMenu(parent);
                
if (parentMenu == null) {
                    System.out.println(
"parentMenu '" + parent + "' doesn't exist!");
                    
// create a temporary parentMenu
                    parentMenu = new MenuComponent();
                    parentMenu.setName(parent);
                    repository.addMenu(parentMenu);
                }

                mc.setParent(parentMenu);
            }
            String title 
= (String) row.get("title");
            mc.setTitle(title);
            String location 
= (String) row.get("location");
            mc.setLocation(location);
            String description 
= (String) row.get("description");
            mc.setDescription(description);
            repository.addMenu(mc);
        }
        
        request.setAttribute(
"examplesRepository", repository);
    }


gdufo 2008-08-05 15:02 鍙戣〃璇勮
]]>
瀹炴垬Struts-Menu(2)http://www.tkk7.com/gdufo/archive/2008/08/05/220170.htmlgdufogdufoTue, 05 Aug 2008 06:56:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/05/220170.html
<?xml version="1.0" encoding="UTF-8" ?>

<MenuConfig>

  
<Displayers>
    
<Displayer   name="DropDown"
                 type
="net.sf.navigator.displayer.DropDownMenuDisplayer"/>
    
<Displayer   name="Simple"
                 type
="net.sf.navigator.displayer.SimpleMenuDisplayer"/>
    
<Displayer   name="CoolMenu"
                 type
="net.sf.navigator.displayer.CoolMenuDisplayer"/>
    
<Displayer   name="CoolMenu4"
                 type
="net.sf.navigator.displayer.CoolMenuDisplayer4"/>
    
<Displayer   name="MenuForm"
                 type
="net.sf.navigator.example.PermissionsFormMenuDisplayer"/>
    
<Displayer   name="ListMenu"
                 type
="net.sf.navigator.displayer.ListMenuDisplayer"/>
    
<Displayer   name="TabbedMenu"
                 type
="net.sf.navigator.displayer.TabbedMenuDisplayer"/>
    
<Displayer   name="Velocity"
                 type
="net.sf.navigator.displayer.VelocityMenuDisplayer"/>
  
</Displayers>

  
<Menus>
    
<Menu  name="DoorSite"  title="DoorSite"  description="Some famous doorsite" width="50">
       
<Item   name="Yahoo"   title="Yahoo">
           
<Item   name="YahooIndex"   title="Yahoo Index"   location="http://www.yahoo.com.cn"/>
           
<Item   name="YahooMail"    title="Yahoo Mail"    location="http://cn.mail.yahoo.com"/>
       
</Item>
       
<Item    name="Sohu"  title="Sohu"   location="http://www.sohu.com"/>
       
<Item    name="Sina"  title="Sina"   location="http://www.sina.com.cn"/>
    
</Menu>
  
</Menus>

</MenuConfig>

5錛氬皢絎洓姝ョ殑紺轟緥紼嬪簭涓殑struts-menu搴旂敤鐩綍涓嬬殑images銆乻cripts銆乻tyles涓変釜鐩綍涓殑鍐呭澶嶅埗鍒皐eb鐩綍涓?

  6錛氫綘鐨勭洰褰曠粨鏋勫簲璇ョ被浼煎涓嬶細

%PROJECT_HOME%\classes
    %PROJECT_HOME%\lib
    %PROJECT_HOME%\lib\antlr.jar
    %PROJECT_HOME%\lib\commons-beanutils.jar
    %PROJECT_HOME%\lib\commons-digester.jar
    %PROJECT_HOME%\lib\commons-fileupload.jar
    %PROJECT_HOME%\lib\commons-lang-
2.1.jar
    %PROJECT_HOME%\lib\commons-logging.jar
    %PROJECT_HOME%\lib\commons-validator.jar
    %PROJECT_HOME%\lib\jakarta-oro.jar
    %PROJECT_HOME%\lib\jstl-
1.0.6.jar
    %PROJECT_HOME%\lib\standard-
1.0.6.jar
    %PROJECT_HOME%\lib\struts.jar
    %PROJECT_HOME%\lib\struts-menu-
2.3.jar
    %PROJECT_HOME%\src
    %PROJECT_HOME%\src\log4j.properties
    %PROJECT_HOME%\src\application.properties
    %PROJECT_HOME%\src\application_zh_CN.properties
    %PROJECT_HOME%\web
 %PROJECT_HOME%\web\images\
 %PROJECT_HOME%\web\scripts\
 %PROJECT_HOME%\web\styles\
    %PROJECT_HOME%\web\WEB-INF
    %PROJECT_HOME%\web\WEB-INF\menu-config.xml
    %PROJECT_HOME%\web\WEB-INF\struts-bean.tld
    %PROJECT_HOME%\web\WEB-INF\struts-config.xml
    %PROJECT_HOME%\web\WEB-INF\struts-html.tld
    %PROJECT_HOME%\web\WEB-INF\struts-logic.tld
    %PROJECT_HOME%\web\WEB-INF\struts-menu.tld
    %PROJECT_HOME%\web\WEB-INF\struts-menu-el.tld
    %PROJECT_HOME%\web\WEB-INF\struts-nested.tld
    %PROJECT_HOME%\web\WEB-INF\struts-tiles.tld
    %PROJECT_HOME%\web\WEB-INF\web.xml

鍏佸疄鎴楽truts-Menu
  1錛氫嬌鐢ㄩ厤緗枃浠跺疄鐜伴潤鎬佽彍鍗?br />   鏂板緩JSP鏂囦歡web/static-menu.jsp錛屽唴瀹瑰涓嬶細

<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="struts-menu" prefix="menu" %>

<menu:useMenuDisplayer name="ListMenu" 
    bundle
="org.apache.struts.action.MESSAGE">
    
<menu:displayMenu name="DoorSite"/>
</menu:useMenuDisplayer>

榪愯Tomcat錛屽湪IE鍦板潃鏍忚緭鍏?a href="http://localhost:8080/mymenu/static-menu.jsp">http://localhost:8080/mymenu/static-menu.jsp鏌ョ湅

2錛氬疄鐜頒腑鏂囧寲
  > 鍦╯rc\application_zh_CN.properties涓鍔犱笅闈㈢殑鍐呭錛孶nicode鍙互閫氳繃JDK鑷甫鐨刵ative2ascii宸ュ叿寰楀埌錛?br />
#闂ㄦ埛緗戠珯
menu.DoorSite
=\u95e8\u6237\u7f51\u7ad9
#闆呰檸
menu.Yahoo
=\u96c5\u864e
#闆呰檸棣栭〉
menu.YahooIndex
=\u96c5\u864e\u9996\u9875
#闆呰檸閭歡
menu.YahooMail
=\u96c5\u864e\u90ae\u4ef6
#鎼滅嫄
menu.Sohu
=\u641c\u72d0
#鏂版氮
menu.Sina
=\u65b0\u6d6a
> 鍦╯rc\application.properties涓鍔犱笅闈㈢殑鍐呭錛?br />
#闂ㄦ埛緗戠珯
menu.DoorSite
=DoorSite
#闆呰檸
menu.Yahoo
=Yahoo
#闆呰檸棣栭〉
menu.YahooIndex
=Yahoo Index
#闆呰檸閭歡
menu.YahooMail
=Yahoo Mail
#鎼滅嫄
menu.Sohu
=Sohu
#鏂版氮
menu.Sina
=Sina
> 淇敼menu-config.xml鏂囦歡<Menus></Menus>閮ㄥ垎錛?br />
<Menus>
    
<Menu  name="DoorSite"  title="menu.DoorSite"  description="Some famous doorsite" width="50">
       
<Item   name="Yahoo"   title="menu.Yahoo">
           
<Item   name="YahooIndex"   title="menu.YahooIndex"   location="http://www.yahoo.com.cn"/>
           
<Item   name="YahooMail"    title="menu.YahooMail"    location="http://cn.mail.yahoo.com"/>
       
</Item>
       
<Item    name="Sohu"  title="menu.Sohu"   location="http://www.sohu.com"/>
       
<Item    name="Sina"  title="menu.Sina"   location="http://www.sina.com.cn"/>
    
</Menu>
  
</Menus>
閲嶈搗Tomcat錛屽湪IE鍦板潃鏍忚緭鍏?a href="http://localhost:8080/mymenu/static-menu.jsp">http://localhost:8080/mymenu/static-menu.jsp鏌ョ湅

  3錛氱粨鍚堟暟鎹簱瀹炵幇鍔ㄦ佽彍鍗?br />   > 鏂板緩鏁版嵁myexamples錛?br /> CREATE DATABASE myexamples
  > 鏂板緩鏁版嵁搴撹〃menu_item錛?br />

CREATE TABLE menu_item (
   id BIGINT not null
,
   parent_name VARCHAR(
30),
   name VARCHAR(
30),
   title VARCHAR(
30),
   titleCN VARCHAR(
30),
   description VARCHAR(
50),
   location VARCHAR(
255),
   target VARCHAR(
10),
   onclick VARCHAR(
100),
   onmouseover VARCHAR(
100),
   onmouseout VARCHAR(
100),
   image VARCHAR(
50),
   altImage VARCHAR(
30),
   tooltip VARCHAR(
100),
   roles VARCHAR(
100),
   page VARCHAR(
255),
   width VARCHAR(
5),
   height VARCHAR(
5),
   forward VARCHAR(
50),
   action VARCHAR(
50),
   primary key (id)
)


gdufo 2008-08-05 14:56 鍙戣〃璇勮
]]>
瀹炴垬Struts-Menu(1)http://www.tkk7.com/gdufo/archive/2008/08/05/220167.htmlgdufogdufoTue, 05 Aug 2008 06:52:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/05/220167.html2006-11-21 19:13
 涓銆佺畝浠?br />   Struts-Menu鏄竴緇勪粠鍩轟簬XML鐨勯厤緗枃浠朵腑鐢熸垚澶氱鏍峰紡鐨勮彍鍗曠殑JSP Tags錛屽茍涓斿彲浠ョ粨鍚圓PI寮鍙戦氳繃鏁版嵁搴撶敓鎴愮殑鍔ㄦ佽彍鍗曘係truts-Menu鏀寔鍥介檯鍖栧拰澶氱鏉冮檺鎺у埗銆?

浜屻佽繍琛岀幆澧?br />   Windows 2000 Professional
  JDK 1.4.2_03
  Eclipse 3.1
  Tomcat 5.0.28
  Tomcat Plugin 3.1Beta
  Struts 1.2.7
  Commons-Lang 2.1
  Commons-Collections 3.1
  Struts-Menu 2.3
  MySQL 4.1.10a-nt

涓夈佷笅杞戒笌瀹夎
  1錛氫粠http://java.sun.com涓嬭澆J2SDK錛屽綋鍓?.4.x緋誨垪鐨勬渶鏂扮増鏈負1.4.2_08
  2錛氫粠http://www.eclipse.org涓嬭澆Eclipse錛屽綋鍓嶆渶鏂扮増鏈負3.1姝e紡鐗?br />   3錛氫粠http://jakarta.apache.org/tomcat涓嬭澆Tomcat錛屽綋鍓?.x緋誨垪鐨勬渶鏂扮増鏈負5.0.28
  4錛氫粠http://www.sysdeo.com/eclipse/tomcatplugin涓嬭澆Eclipse鐨凾omcat鎻掍歡錛屽搴擡clipse3.1x鐨勬渶鏂扮増鏈負3.1Beta
  5錛氫粠http://struts.apache.org涓嬭澆Struts錛屽綋鍓嶆渶鏂扮増鏈負1.2.7
  6錛氫粠http://jakarta.apache.org/commons/涓嬭澆Commons-Lang錛屽綋鍓嶆渶鏂扮増鏈負2.1錛屼笅杞紺ommons-Collections錛屽綋鍓嶆渶鏂扮増鏈負3.1
  7錛氫粠http://struts-menu.sourceforge.net涓嬭澆Struts Menu錛屽綋鍓嶆渶鏂扮増鏈負2.3
  8錛氫粠http://www.mysql.com涓嬭澆MySQL鏁版嵁搴擄紝4.x緋誨垪鐨勬渶鏂扮増鏈槸4.1.12a
  9錛歁ySQL銆丣DK銆丒clipse銆乀omcat鍜孴omcatPlugin鐨勫畨瑁呭強閰嶇疆璇峰弬鑰冪浉鍏寵祫鏂?/p>

鍥涖佽繍琛岀ず渚嬬▼搴?br />   1錛氬畨瑁呭ソTomcat鍚庯紝瑙e帇緙﹕truts-menu-2.3.zip錛屽皢struts-menu.war閲婃斁鍒癟omcat瀹夎鐩綍涓嬬殑webapps涓嬶紝榪愯Tomcat
  2錛氬湪鍦板潃鏍忚緭鍏?a href="http://localhost:8080/struts-menu">http://localhost:8080/struts-menu

浜斻佸畨瑁呬笌閰嶇疆
  1錛氬湪Eclipse涓柊寤篢omcat欏圭洰錛孋ontext涓?mymenu錛孲ubdirectory涓?web
  2錛氬湪欏圭洰鐩綍涓嬮潰鏂板緩lib鐩綍鍜寃eb鐩綍鍙奧EB-INF錛屽湪web/WEB-INF鐩綍涓嬫柊寤簑eb.xml錛屽唴瀹瑰涓嬶細


<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd"
>

<web-app>
  
<display-name>My Example Application -- Vinton Lee</display-name>
      
  
<!-- ============= The Struts ActionServlet Configuration ============= -->
  
<servlet>
    
<servlet-name>action</servlet-name>
    
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    
<init-param>
      
<param-name>config</param-name>
      
<param-value>/WEB-INF/struts-config.xml</param-value>
    
</init-param>
    
<load-on-startup>1</load-on-startup>
  
</servlet>
  
<!-- ================================================================== -->
    
  
<!-- ============= The Struts Action Servlet Mapping ================== -->
  
<servlet-mapping>
    
<servlet-name>action</servlet-name>
    
<url-pattern>*.do</url-pattern>
  
</servlet-mapping>
  
<!-- ================================================================== -->
  
  
<!-- The Welcome File List -->
  
<welcome-file-list>
    
<welcome-file>index.jsp</welcome-file>
  
</welcome-file-list>

  
<!-- =============== The Struts Taglib Definition ===================== -->
  
<taglib>
    
<taglib-uri>struts-bean</taglib-uri>
    
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  
</taglib>
  
<taglib>
    
<taglib-uri>struts-html</taglib-uri>
    
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  
</taglib>
  
<taglib>
    
<taglib-uri>struts-logic</taglib-uri>
    
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  
</taglib>
  
<taglib>
    
<taglib-uri>struts-nested</taglib-uri>
    
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
  
</taglib>
  
<taglib>
    
<taglib-uri>struts-tiles</taglib-uri>
    
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
  
</taglib>
  
<!-- ================================================================== -->
  
  
<!-- ============= The Struts-Menu Taglib Definition ================== -->
  
<taglib>
    
<taglib-uri>struts-menu</taglib-uri>
    
<taglib-location>/WEB-INF/struts-menu.tld</taglib-location>
  
</taglib>
  
<!-- ================================================================== -->
</web-app>

3錛氳В鍘嬬緝struts-1.2.7.zip錛屽皢鍘嬬緝鍖呬腑鐨刲ib鐩綍涓嬫墍鏈夌殑8涓猨ar閲婃斁鍒發ib鐩綍涓紝灝?涓猼ld鏂囦歡閲婃斁鍒皐eb\WEB-INF鐩綍涓紝鍦╳eb\WEB-INF鐩綍涓柊寤簊truts-config.xml錛屽唴瀹瑰涓嬶細

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://struts.apache.org/dtds/struts-config_1_2.dtd"
>

<struts-config>

    
<!-- ========== Data Source Configuration =============================== -->
    
<data-sources />

    
<!-- ========== Form Bean Definitions =================================== -->
    
<form-beans />

    
<!-- ========== Global Exception Definitions ============================ -->
    
<global-exceptions />

    
<!-- ========== Global Forward Definitions ============================== -->
    
<global-forwards />

    
<!-- ========== Action Mapping Definitions ============================== -->
    
<action-mappings />

    
<!-- ========== Controller Configuration ================================ -->

    
<!-- ========== Message Resources Definitions =========================== -->
    
<message-resources parameter="application" />

    
<!-- ========== Plug Ins Configuration ================================== -->
    
<plug-in className="net.sf.navigator.menu.MenuPlugIn">
      
<set-property property="menuConfig" value="/WEB-INF/menu-config.xml"/>
    
</plug-in>

</struts-config>


gdufo 2008-08-05 14:52 鍙戣〃璇勮
]]>
struts2 閰嶇疆(struts.properties,strtus.xml)http://www.tkk7.com/gdufo/archive/2008/08/04/219909.htmlgdufogdufoMon, 04 Aug 2008 06:03:00 GMThttp://www.tkk7.com/gdufo/archive/2008/08/04/219909.html1.瀵煎叆STRUTS2-core-2.0.X.jar,xwork-2.0.X.jar,ognl-2.6.x.jar
2.閰嶇疆web.xml鏂囦歡
鍔犲叆org.apache.struts2.dispatcher.FilterDispatcher榪囨護鍣ㄧ殑閰嶇疆

<filter>
  
<filter-name>struts2</filter-name>
   
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
  
<filter-name>struts2</filter-name>
  
<url-pattern>/*</url-pattern>
</filter-mapping>

FilterDispatcher鏄疭TRUTS2鏍稿績鎺у埗鍣ㄣ傝礋璐f嫤鎴墍鏈夌殑鐢ㄦ埛璇鋒眰銆?/span>

鐢ㄦ埛璇鋒眰鐨勫埌杈炬椂錛孎ilter榪囨護鐢ㄦ埛璇鋒眰銆傚鏋滅敤鎴瘋姹備互action緇撳熬錛岃姹傚皢琚漿鍏truts2妗嗘灦澶勭悊銆?br />

<filter>鍙互鍔犲叆浠ヤ笅鍙傛暟
  
<init-param>
    
<param-name>config</param-name>
      
<param-value>浠ラ楀彿闅斿紑鐨勫涓猻truts閰嶇疆鏂囦歡鐨勫悕,娌℃湁XML鍚庣紑</param-value>

  
</init-param>

  
<init-param>
     
<param-name>actionPackages</param-name>
      
<param-value>
org.apache.struts2.showcase.person鍖呯┖闂村悕錛屽涓敤閫楀彿闅斿紑
</param-value>
</init-param>

<init-param>

         
<param-name>configProviders</param-name>

<param-value>

涓涓垨澶氫釜瀹炵幇ConfigurationProvider鎺ュ彛鐨勯厤緗彁渚涚被鐨勭被鍏ㄥ悕錛屽涓被鐢ㄩ楀彿闅斿紑

</param-value>

</init-param>

 

3.鍦╟lasses涓嬪姞鍏truts.xml鏂囦歡

Struts.xml鏂囦歡鐢ㄦ潵閰嶇疆action,鎷︽埅鍣ㄧ瓑銆?/span>

 

<?xml version=”1.0” encoding=”GBK”?>

<!鈥擠TD淇℃伅-->

<!DOCTYPE struts PUBLIC
“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
“http://struts.apache.org/dtds/struts-2.0.dtd”
>
<struts>
<package name=”packagename” extends=”struts-default”>
<action name=”Login” class=”lee.LoginAction”>
<result name=”input”>login.jsp</result>
</action>
</package>
</struts>

i.Struts-default.xml閰嶇疆鏂囦歡浣嶄簬struts-core-2.0.x.jar鍖呬腑銆傛槸struts2鏈鏍稿績鐨勯厤緗枃浠躲?/span>

ii.浠庝腑鍙互鐪嬪埌鏁翠釜鐨剆truts鐨勬牳蹇冨姛鑳界殑鍏ㄨ矊.

iii.Struts鍙互鍦╮esult鍏冪礌涓寚瀹氱浉搴旂殑type灞炴?榛樿jsp).浠庤屾敮鎸佸叾浠栫殑瑙嗗浘鎶鏈?/span>

v.鍖呭彲浠ョ戶鎵垮叾浠栫殑鍖呫傚寘鍙互瀹氫箟鍛藉悕絀洪棿錛岀敤鏉ュ尯鍒叾浠栭厤緗枃浠朵腑鐨勭浉鍚岀殑鍖呭悕銆?/span>

vi.鍖呭彲浠ュ畾涔夋垚abstract=true 榪欐牱鍖呭氨鍙兘琚戶鎵匡紝涓嶈兘琚鏋剁洿鎺ュ疄渚嬪寲銆?/span>

vii.struts鍙互灝嗕竴涓猻truts.xml鏂囦歡鍒嗚В鎴愬涓厤緗枃浠訛紝鐒跺悗鍦╯truts.xml鏂囦歡涓寘鍚叾浠栭厤緗枃浠躲?lt;struts><include file=”struts-partOne.xml”/></struts>

娉ㄦ剰錛氫篃鍙互鍦╳eb.xml涓厤緗甪ilter鏃跺姞鍏onfig鍙傛暟鏉ュ姞杞藉涓厤緗枃浠躲?/span>

 

3錛巗truts.properties閰嶇疆鏂囦歡

璇ユ枃浠跺畾涔変簡struts2妗嗘灦鐨勫ぇ閲忓睘鎬с傚彧瑕佸皢璇ユ枃浠舵斁鍦╳eb搴旂敤鐨凜LASSPATH涓嬶紝struts2妗嗘灦灝變細鑷姩鍔犺澆銆?/span>

stuts.locale

鎸囧畾Web搴旂敤鐨勯粯璁ocale

struts.i18n.encoding

鎸囧畾搴旂敤鐨勯粯璁ょ紪鐮佺浉褰撲簬璋冪敤HttpServletRequest鐨剆etCharacterEncoding鏂規硶銆?/span>

struts.custom.i18n.resources

鎸囧畾struts搴旂敤鎵闇瑕佺殑鍥介檯鍖栬祫婧愭枃浠剁殑鍚嶇О錛坢essage_zh_cn.properties鍙渶瑕佹寚瀹氬悕涓簃essage錛?/span>

struts.mutipart.parser

璇ュ睘鎬у鐞唌utipart/form-data鐨凪IME綾誨瀷璇鋒眰鐨勬鏋訛紙cos|pell|jakarta錛夐粯璁ゆ槸jakarta(common-fileupload)

struts.multipart.saveDir

鎸囧畾涓婁紶鏂囦歡鐨勪復鏃朵繚瀛樿礬寰勶紝榛樿鏄痡avax.servlet.context.tempdir;

struts.multipart.maxSize

鎸囧畾鏂囦歡涓婁紶涓暣涓姹傚唴瀹瑰厑璁哥殑鏈澶у瓧鑺傛暟銆?/span>

struts.action.extension

鎸囧畾Struts澶勭悊璇鋒眰鍚庣紑錛岄粯璁ゆ槸action(login.action)

struts.serve.static.browserCache

鎸囧畾嫻忚鍣ㄦ槸鍚︾紦瀛橀潤鎬佸唴瀹?/span>

struts.enable.SlashesInActionNames

璇ュ睘鎬ц緗畇truts2鏄惁鍏佽鍦ˋction鍚嶄腑浣跨敤鏂滅嚎錛岃灞炴х殑榛樿鍊兼槸false銆?/span>

struts.devMode

璁劇疆struts2鏄惁浣跨敤寮鍙戞ā寮忥紙true|false錛?/span>

struts.dispatcher.parametersWorkaround

瀵逛簬涓嶆敮鎸丠ttpServlertRequest璋冪敤getParameterMap()鏂規硶鐨勬湇鍔″櫒錛屽彲浠ヨ緗灞炴у間負true

鏉ヨВ鍐寵闂銆備笉鏀寔getParameterMap()鏂規硶鐨勬湇鍔″櫒錛歸eblogic,orion,oc4j

 struts.i18n.reload

璁劇疆鏄惁姣忔HTTP璇鋒眰鍒拌揪鏃訛紝緋葷粺閮介噸鏂板姞杞借祫婧愭枃浠躲傞粯璁alse

struts.ui.theme

璁劇疆瑙嗗浘鏍囩鐨勯粯璁や富棰樸傞粯璁ゆ槸xhtml

struts.ui.templateDir

璁劇疆瑙嗗浘涓婚鎵闇妯℃澘鏂囦歡鐨勪綅緗紝榛樿鏄痶emplate,榛樿鍔犺澆template璺緞涓嬬殑妯℃澘鏂囦歡銆?/span>

struts.ui.templateSuffix

鎸囧畾妯℃澘鏂囦歡鐨勫悗緙錛坒tl|vm|jsp錛?/span>

struts.configuration.xml.reload

 璁劇疆褰搒truts.xml鏂囦歡鏀瑰彉鍚庯紝緋葷粺鏄惁鑷姩閲嶆柊鍔犺澆銆?/span>

struts.configuration.files

鎸囧畾榛樿鍔犺澆鐨勯厤緗枃浠訛紝榛樿鍊兼槸錛歴truts-default.xml,struts-plugin.xml,struts.xml

struts.objectFactory

鎸囧畾struts2榛樿鐨凮bjectFactoryBean,璇ュ睘鎬ч粯璁ゆ槸spring

struts.objectFactory.spring.autoWire

 鎸囧畾Spring妗嗘灦鑷姩瑁呴厤妯″紡錛岄粯璁ゆ槸name.鍗蟲牴鎹瓸ean鐨刵ame灞炴ц嚜鍔ㄨ閰嶃?/span>

struts.objectFactory.spring.userClassCache

 鎸囧畾spring妗嗘灦鏄惁緙撳瓨Bean瀹炰緥銆傞粯璁ゆ槸true

struts.objectTypeDeterminer (tiger|notiger)


 



gdufo 2008-08-04 14:03 鍙戣〃璇勮
]]>
Struts2 涓枃璁″垝 緲昏瘧http://www.tkk7.com/gdufo/archive/2008/07/02/212179.htmlgdufogdufoWed, 02 Jul 2008 10:06:00 GMThttp://www.tkk7.com/gdufo/archive/2008/07/02/212179.html闃呰鍏ㄦ枃

gdufo 2008-07-02 18:06 鍙戣〃璇勮
]]>
Struts2涓嶸elocity妯℃澘http://www.tkk7.com/gdufo/archive/2008/06/29/211517.htmlgdufogdufoSun, 29 Jun 2008 11:34:00 GMThttp://www.tkk7.com/gdufo/archive/2008/06/29/211517.htmlhttp://www.tkk7.com/gdufo/comments/211517.htmlhttp://www.tkk7.com/gdufo/archive/2008/06/29/211517.html#Feedback2http://www.tkk7.com/gdufo/comments/commentRss/211517.htmlhttp://www.tkk7.com/gdufo/services/trackbacks/211517.htmlVelocity鏄竴縐嶅熀浜?/span>JAVA鐨勬ā鏉垮紩鎿庯紝寮鍙戜漢鍛樹嬌鐢ㄧ畝鍗曠殑妯℃澘璇█灝卞彲浠ュ揩閫熷紑鍙戞樉紺哄眰錛屽畠浣垮緱鏄劇ず灞備笌紼嬪簭浠g爜鍒嗙錛屽湪鏃╂湡鐨?/span>Webwork鐗堟湰涓紝鎵鏈?/span>UI鏍囩鍧囦嬌鐢?/span>Velocity妯℃澘寮曟搸鐢熸垚錛屽彲浠ュ湪Struts-core-2.0.8.jar涓壘鍒?/span>template鏂囦歡澶癸紝鍏朵腑鐨?/span>archive鏂囦歡澶逛笅瀛樻斁鐫鍘熸湁鐨?/span>vl鏂囦歡錛?/span>

鍦?/span>Struts2涓煡鎵?/span>vm鏂囦歡鐨勯『搴忓厛鏌ユ壘Web搴旂敤紼嬪簭錛屽啀鏌ユ壘綾昏礬寰勩傚鏋滀綘闇瑕佷嬌鐢?/span>vm浣滀負鏄劇ず灞傦紝鍙渶瑕佸湪閰嶇疆鏂囦歡涓寚瀹?/span>result鐨?/span>type灞炴т負velocity錛岀劧鍚庡皢<param>鐨?/span>location灞炴ф寚瀹氬埌涓涓互vm緇撳熬鐨勮祫婧愪笂灝卞彲浠ヤ簡錛?/span>

1.Struts2涓殑Velocity涓枃涔辯爜鐨勫鐞嗘柟寮忥細

鍥犱負鍦?/span>Velocity-1.4.jar涓殑org.apache.velocity.runtime.defaults涓畾涔夌殑velocity.properties涓畾涔夌殑input.encoding=ISO8859-1錛?/span>output.encoding=ISO8859-1錛岄氬父鏈濂藉湪VM鏂囦歡涓嬌鐢?/span>%{getText(‘’)}璋冪敤鍥介檯鍖栬祫婧愭枃浠剁殑鍐呭灝變笉浼氫駭鐢熶貢鐮併?/span>

2.Velocity鐨?/span>vm鏂囦歡蹇呴』瑕佺粡榪?/span>Action鎵嶅彲浠ヨ闂紝浠ヤ究琚▼搴忚В鏋愶紝涓嶅彲浠ョ洿鎺ヨ闂?/span>vm鏂囦歡銆?/span>

3.鍦?/span>vm鏂囦歡涓嬌鐢?/span>Struts2鐨勬爣絳懼彧闇瑕佸湪鍘熸湁鏍囩鍓嶅姞#s灝卞彲浠ヤ簡錛屽弬鏁頒箣闂翠嬌鐢?/span>””鍒嗛殧錛?/span>

(1.)渚嬪涓嬮潰鏄竴涓〃鍗曠殑瀹氫箟錛?/span>

#sform(“action=Student” namespace=”/ilkj/student”)

       #stextfield(“label=%{getText(‘student.label.name’)}” “name=student.name”)

       #spassword(“label=%{getText(‘student.label.password’)} ” name=student.age”)

       #ssubmit(“value=getText(‘globale.label.submit’)”)

#end

(2.)涓嬮潰鏄彇鍑?/span>session涓殑涓涓弬鏁扮殑鍊?/span>

#sproperty(“value=#session.information” “default=noValue”)

(3.)涓嬮潰鏄闂?/span>Action涓殑灞炴?/span>

${student.name}錛屽綋鐒朵綘涔熷彲浠ョ畝鍗曞啓鎴?/span>$student.name鐨勫艦寮忋?/span>

4.Velocity鐨勫唴寤哄彉閲忥細

stack---ValueStack錛屽彲浠ヤ嬌鐢?/span>${stack.findString(‘OGNL琛ㄨ揪寮?/span>’)}鍙栧?/span>

action---鏈榪戞墽琛岀殑Action錛屼緥濡?/span>${action.getStudent().getName()}鎴栬呬篃鍙互鐩存帴鍐?/span>${action.student.name}

response---HttpServletRequest

request---HttpServletResponse

session---HttpSession

application---ServletContext

base---鐢熸垚搴旂敤鐨勪笂涓嬫枃錛岀浉褰撲笌request.getContextPath()

5.娉ㄩ噴璇硶

(1.)鍗曡娉ㄩ噴錛?/span>##

(2.)澶氳娉ㄩ噴錛?/span>#* ... ... *#

6.鏆傚仠鎵ц

#stop---鍋滄鎵ц鍚庨潰鐨勬ā鏉垮唴瀹?/span>

7.杞箟瀛楃

Velocity浣跨敤 \ 杞箟瀛楃錛屼緥濡?/span>email琚畾涔変負andrew830314@163.com錛?/span>#set($email=’andrew830314@163.com’)錛夛紝浣犺繕鎯寵緭鍑?/span>$email鑰屼笉琚?/span>Velocity瑙f瀽錛岄偅涔堜綘鍙互浣跨敤 \$email銆?/span>

8.寮曞叆鍏朵粬鏂囦歡

#include(“”)錛屽鏋滄槸JSP鎴栬?/span>vm鏂囦歡灝嗕細鏄劇ず鍐呭錛屽叾浠栨枃鏈枃浠舵樉紺烘枃鏈紝浜岃繘鍒朵細鏄劇ず涔辯爜錛屽紩鍏ュ涓枃浠朵嬌鐢?/span> , 闂撮殧錛?/span>#parse(“”)寮曞叆涓涓湰鍦扮殑vm鏂囦歡錛屼笌#include(“”)涓嶅悓錛?/span>#parse(“”)鍙兘寮曞叆涓涓枃浠訛紝騫朵笖#parse(“”)鍙互璁塊棶鐖舵ā鏉塊噷鐨勫彉閲忋?/span>

9.妯℃澘浠g爜澶嶇敤

#macro(浠g爜孌靛悕縐?/span> $鍙傛暟1 ... ...)

       ... ...

#end

鍙浣跨敤#浠g爜孌靛悕縐?/span>($鍙傛暟1 ... ...)灝卞彲浠ヤ嬌鐢ㄨ繖孌典唬鐮侊紝褰撶劧浣犱篃鍙互涓嶄嬌鐢ㄤ換浣曞弬鏁?/span>

10.鍒ゆ柇璇彞

#if(閫昏緫琛ㄨ揪寮?/span>)

娉ㄦ剰錛氬湪Velocity涓嬌鐢?/span>==鍒ゆ柇涓や釜鍙橀噺鏄惁鐩哥瓑錛岃屼笉鏄嬌鐢?/span>equals(“”)鏂規硶銆?/span>

#else

#end

浠庝笂闈㈡垜浠繕鍙互鎬葷粨鍑猴紝Velocity妯℃澘寮曟搸浣跨敤#琛ㄧず涓縐嶅懡浠わ紝渚嬪#set鏄粰鏌愪釜鍙橀噺璁劇疆鍊鹼紝浣跨敤$寮曠敤鍙橀噺錛屼嬌鐢?/span>()琛ㄧず鍙傛暟錛屼嬌鐢?/span>{}琛ㄧず浣滅敤鑼冨洿銆?/span>

鍙﹀闇瑕佹敞鎰忕殑鏃跺欙紝Velocity鍙細鎸夌収gettXXX()瑙f瀽鍙樿劯鍙橀噺錛屼緥濡?/span>student.name瀹為檯涓婃壘鍒扮殑student.getName()鏂規硶錛屼綘鍙互璇曠潃鍦?/span>Action鍐欎竴涓彉閲忚屼笉浣跨敤getXXX()鏂規硶錛岀湅鐪嬩細涓嶄細鍦?/span>vm涓彇鍒板鹼紝絳旀鏄彉閲忎細琚師鏍瘋緭鍑恒?/span>

Velocity浣跨敤鐨勯兘鏄璞★紝鍗充嬌浣犲畾涔?/span>#set ($count=1)涔熶細琚寘瑁呮垚Integer浣跨敤銆?/span>

鍙﹀錛屼慨鏀?/span>vm鏂囦歡闇瑕侀噸鏂板惎鍔ㄦ湇鍔″櫒錛屽鏋滃湪寮鍙戦樁孌碉紝鎴戜滑鍙互璁劇疆struts.properties涓殑struts.devMode=true閬垮厤姣忔閲嶆柊鍚姩鏈嶅姟鍣ㄣ?/span>

鏈鍚庢垜浠濊冧竴涓嬶紝濡傛灉璐у竵$2.95浼氳Velocity寮曟搸鐩存帴杈撳嚭錛岃繕鏄幓鏌ユ壘2.95榪欎釜鍙橀噺錛熷鏋滀綘鍦ㄦ濊冭繖涓棶棰橈紝璇存槑浣犵殑JAVA鍩虹涓嶈繃鍏沖摝錛佸洜涓?/span>JAVA涓殑鍙橀噺涓嶈兘浠ユ暟瀛楀紑澶寸殑鍝︼紒鍥犳浣犱笉蹇呮媴蹇冭揣甯?/span>$2.95浼氳褰撲綔鍙橀噺瑙f瀽錛佸彟澶栵紝濡傛灉Velocity寮曟搸鏈壘鍒板彉閲忎篃浼氬師鏍瘋緭鍑猴紝渚嬪${student.name}濡傛灉鏈壘鍒頒細鐩存帴鍘熸牱杈撳嚭錛岃繖涔熸槸涓轟粈涔堟垜浠洿鎺ヨ闂?/span>JSP鐨勬椂鍊欎細鐪嬪埌澶ч噺鐨?/span>${}琚師鏍瘋緭鍑恒傚鏋滃彉閲忎笉瀛樺湪,浣犳兂璁╁畠涓嶈緭鍑?鍙互榪欐牱鍐?!{}

gdufo 2008-06-29 19:34 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 免费国产在线精品一区| 亚洲精品夜夜夜妓女网| 亚洲天堂电影在线观看| 免费91麻豆精品国产自产在线观看 | 日韩成人免费aa在线看| 久久精品国产亚洲av高清漫画| 久久精品免费一区二区喷潮| 亚洲午夜精品一区二区| 午夜免费福利视频| 亚洲五月激情综合图片区| 59pao成国产成视频永久免费| 成人黄网站片免费视频| 亚洲国产日韩在线观频| baoyu122.永久免费视频| 四虎在线播放免费永久视频| 国产成人精品久久亚洲| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 女人18毛片免费观看| 亚洲91精品麻豆国产系列在线| 性色av极品无码专区亚洲| 成人国产mv免费视频| 产传媒61国产免费| 亚洲色精品88色婷婷七月丁香| 亚洲国产精久久久久久久| 88av免费观看入口在线| 久久久久精品国产亚洲AV无码| 一边摸一边桶一边脱免费视频| 中文字幕亚洲第一在线| 一级特黄aa毛片免费观看| avtt天堂网手机版亚洲| 国产一级淫片a免费播放口之| 国产成人精品日本亚洲| 免费看黄的成人APP| 亚洲欧洲自拍拍偷午夜色| 中文在线免费观看| 久久亚洲国产精品成人AV秋霞| 在线播放亚洲精品| 成人免费毛片内射美女-百度| 亚洲中文字幕视频国产| 黄色短视频免费看| 亚洲人成影院77777|