公告
-
關(guān)注軟件測試自動化,性能測試。
目前負責醫(yī)療軟件功能測試以及
測試過程改進
日歷
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
統(tǒng)計
- 隨筆 - 22
- 文章 - 0
- 評論 - 87
- 引用 - 0
導(dǎo)航
常用鏈接
留言簿(17)
隨筆分類
隨筆檔案
搜索
最新評論

閱讀排行榜
評論排行榜
|
原文作者:UPS Kylin項目小組
準備工作:
下載struts menu, 解壓其中的示例包(struts-menu里面有些庫沒有提供,但示例里面有)
步驟
1,新建一個tomcat工程
2,添加webProject支持
菜單/未標題-1.jpg)
3,增加struts支持
菜單/未標題-2.jpg)
4,增加jstl支持
菜單/未標題-3.jpg)
5, 拷貝必要的jar庫文件到dbMenu\WEB-INF\lib
log4j-1.2.8.jar
velocity-1.4.jar
velocity-tools-view-1.0.jar
struts-menu-2.3.jar
6,創(chuàng)建menu-config.xml文件在dbMenu\WEB-INF目錄。內(nèi)容如下:
<?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> </MenuConfig>
7,修改struts-config.xml 文件,增加如下部分
<plug-in className="net.sf.navigator.menu.MenuPlugIn"> <set-property property="menuConfig" value="/WEB-INF/menu-config.xml"/> </plug-in>
8,拷貝必要的文件
Images/*.*
Scripts/ menuExpandable.js xtree.js
Styles/ menuExpandable.css global.css xtree.css
Templates/xtree.html
dbMenu\WEB-INF\classes\globalMacros.vm (這個文件好像必須要最后拷貝,否則會自動沒了why???)
10, 拷貝tld文件到dbMenu\WEB-INF
struts-menu.tld struts-menu-el.tld
11, 不知道什么原因,需要修改web.xml文件中的version=2.3
<web-app version="2.3">
Web.xml中增加
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>TrackerRes</param-value>
</context-param>

11,創(chuàng)建數(shù)據(jù)庫
仿造如下代碼創(chuàng)建數(shù)據(jù)庫
<sql:update> CREATE TABLE menu_item ( id BIGINT not null, parent_name VARCHAR(30), name VARCHAR(30), title 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) ) </sql:update>
12,填寫數(shù)據(jù)庫
菜單/未標題-4.jpg)
13,創(chuàng)建index.jsp文件
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-menu.tld" prefix="menu" %> <%@ taglib uri="/WEB-INF/struts-menu-el.tld" prefix="menu-el" %> <%@ taglib uri="/WEB-INF/c.tld" prefix="c" %> <%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %> <%@ taglib uri="/WEB-INF/sql.tld" prefix="sql" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ page import="java.util.Map, javax.servlet.jsp.jstl.sql.Result, net.sf.navigator.menu.MenuComponent, net.sf.navigator.menu.MenuRepository"%> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>menu test</title> <link rel="stylesheet" type="text/css" media="screen" href="styles/global.css" /> <link rel="stylesheet" type="text/css" media="screen" href="styles/menuExpandable.css"/> <script type="text/javascript" src="scripts/menuExpandable.js"></script> <link rel="stylesheet" type="text/css" media="all" href="styles/xtree.css"/> <script type="text/javascript" src="scripts/xtree.js"></script> <script type="text/javascript"> /* Function for showing and hiding elements that use 'display:none' to hide */ function toggleDisplay(targetId) { if (document.getElementById) { target = document.getElementById(targetId); if (target.style.display == "none"){ target.style.display = ""; } else { target.style.display = "none"; } } } </script> </head> <body>
<sql:setDataSource driver="sun.jdbc.odbc.JdbcOdbcDriver" user="" password="" url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Program Files\\eclipse302\\workspace\dbMenu\\dm.mdb" var="mydb" />
<sql:transaction dataSource="${mydb}">
<sql:query var="menus"> SELECT * FROM dm order by id; </sql:query>
</sql:transaction> <% // I had issues using the existing repository - creating a new one // seems to solve the problem. If you figure out how to use the default // Repository and keep your menus from duplicating themselves - please // let me know!
MenuRepository repository = new MenuRepository(); // Get the repository from the application scope - and copy the // DisplayerMappings from it. MenuRepository defaultRepository = (MenuRepository) application.getAttribute(MenuRepository.MENU_REPOSITORY_KEY); repository.setDisplayers(defaultRepository.getDisplayers());
Result result = (Result) pageContext.getAttribute("menus"); Map[] rows = result.getRows(); for (int i=0; i < rows.length; i++) { MenuComponent mc = new MenuComponent(); Map row = rows[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); repository.addMenu(mc); } pageContext.setAttribute("repository", repository); %>
menu test <hr>
<a href="tabbedMenu.jsp?home">static Tab Menu </a>
<hr>
<a href="dbtabbedMenu.jsp?home"> Database Driven Tab Menu </a>
<hr>
<a href="xmlForm.jsp"> static Xml Roles Menu </a>
<hr>
<a href="myRolesForm.jsp"> dababase driven Roles Menu </a>
<hr>
<h1>Database Driven Menu</h1>
<hr> <div class="dynamicMenu"> <menu:useMenuDisplayer name="ListMenu" repository="repository"> <menu:displayMenu name="DatabaseMenu"/> <menu:displayMenu name="StandaloneMenu"/> <menu:displayMenu name="niupi"/> </menu:useMenuDisplayer> </div> <hr> <div class="dynamicMenu tree"> <script type="text/javascript"> <menu:useMenuDisplayer name="Velocity" config="/templates/xtree.html" repository="repository"> <c:forEach var="menu" items="${repository.topMenus}"> <menu-el:displayMenu name="${menu.name}"/> </c:forEach> </menu:useMenuDisplayer> </script> </div> <hr>
</body> </html>
14,效果圖:
菜單/未標題-5.jpg)
上邊部分是listview樣式顯示的效果
下邊部分是xtree樣式顯示的效果
================================== 關(guān)于其中遇到的問題,如果你知道答案的話一定要告訴我哦^_^先謝謝啦
評論:
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-07-06 16:04
能把你的實例代碼,和文件給我發(fā)一份嗎????
c.tld fmt.tld sql.tld
謝謝拉
xiuyanzh@21cn.com 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-07-22 14:13
測試多次都沒有成功,能得到你運行成功的代碼嗎
jdskyy@hotmail.com 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-04 17:35
henhao 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-06 09:43
dbMenu\WEB-INF\classes\globalMacros.vm (這個文件好像必須要最后拷貝,否則會自動沒了why???)
================
原因是web-inf下的東西是經(jīng)過編譯構(gòu)件后產(chǎn)生的,你源代碼里面沒有這個文件,而直接拷貝到該目錄下,當重新編譯的時候,系統(tǒng)會先刪除該目錄下的所有文件,然后再產(chǎn)生編譯后的文件。
你可以拷貝該文件到源代碼的根目錄 ,這樣編譯后就會在web-inf\classes目錄看到該文件啦:) 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-10 13:34
主人一點專業(yè)精神也沒有,我照你說做了,根本不成功.錯誤的.
把你整個完整的工程,代碼貼出來,證明一下啊.浪費我時間.
<menu:displayMenu name="DatabaseMenu"/>
錯誤信息是:
2005-08-10 13:29:37 net.sf.navigator.taglib.DisplayMenuTag[http-8080-Processor25] - No menu in repository with name: StandaloneMenu
要貼就貼對的出來,不要不負責任!!!!!! 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-14 16:52
我運行之后,總提示如下錯誤:不知這是為什么?
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: javax.servlet.jsp.JspException: Error initializing Velocity: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'templates/xtree.html'
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:821)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.admin.left_jsp._jspService(left_jsp.java:108)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
edu.xxcb.jxpg.util.MyEncodingFilter.doFilter(MyEncodingFilter.java:26)
root cause
javax.servlet.jsp.JspException: Error initializing Velocity: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'templates/xtree.html'
net.sf.navigator.displayer.VelocityMenuDisplayer.displayComponents(VelocityMenuDisplayer.java:128)
net.sf.navigator.displayer.VelocityMenuDisplayer.display(VelocityMenuDisplayer.java:99)
net.sf.navigator.taglib.DisplayMenuTag.doStartTag(DisplayMenuTag.java:130)
org.apache.jsp.admin.left_jsp._jspx_meth_menu_displayMenu_0(left_jsp.java:162)
org.apache.jsp.admin.left_jsp._jspx_meth_menu_useMenuDisplayer_0(left_jsp.java:133)
org.apache.jsp.admin.left_jsp._jspService(left_jsp.java:96)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
edu.xxcb.jxpg.util.MyEncodingFilter.doFilter(MyEncodingFilter.java:26)
root cause
org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'templates/xtree.html'
org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:458)
org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:341)
org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:831)
org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:813)
org.apache.velocity.runtime.RuntimeSingleton.getTemplate(RuntimeSingleton.java:285)
org.apache.velocity.app.Velocity.getTemplate(Velocity.java:469)
net.sf.navigator.displayer.VelocityMenuDisplayer.displayComponents(VelocityMenuDisplayer.java:124)
net.sf.navigator.displayer.VelocityMenuDisplayer.display(VelocityMenuDisplayer.java:99)
net.sf.navigator.taglib.DisplayMenuTag.doStartTag(DisplayMenuTag.java:130)
org.apache.jsp.admin.left_jsp._jspx_meth_menu_displayMenu_0(left_jsp.java:162)
org.apache.jsp.admin.left_jsp._jspx_meth_menu_useMenuDisplayer_0(left_jsp.java:133)
org.apache.jsp.admin.left_jsp._jspService(left_jsp.java:96)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
edu.xxcb.jxpg.util.MyEncodingFilter.doFilter(MyEncodingFilter.java:26)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.24 logs.
回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-15 17:30
在templats文件夾下面有一個名為xtree.html,其內(nèi)容如下
## displayMenu is defined in WEB-INF/classes/globalMacros.vm
#macro( menuItem $menu $level )
## set title
#set ($title = $displayer.getMessage($menu.title))
#set ($node = $menu.name)
#if ($level == 0)
var $node = new WebFXTree('$title'#if($menu.url),'$!menu.url'#end);
#else
var $node = new WebFXTreeItem('$title'#if($menu.url),'$!menu.url'#end);
${menu.parent.name}.add($node);
#end
#end
#displayMenu($menu 0)
document.write($menu.name);
回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-15 23:45
雖然代碼里有一些錯誤,但也不是你們說的那么嚴重
#錯誤一 :<sql:query var="menus">
SELECT * FROM dm order by id;
</sql:query>
應(yīng)為 <sql:query var="menus">
SELECT * FROM menu_item order by id;
</sql:query>
最后大家要把數(shù)據(jù)源部分換成自己的數(shù)據(jù)庫參數(shù)
<sql:setDataSource driver="sun.jdbc.odbc.JdbcOdbcDriver" user="" password=""
url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Program Files\\eclipse302\\workspace\dbMenu\\dm.mdb"
var="mydb" />
我運行了哈,呵呵,出來了! 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-16 21:31
sdfsfdsdf 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-16 21:32
錯誤信息是:
2005-08-10 13:29:37 net.sf.navigator.taglib.DisplayMenuTag[http-8080-Processor25] - No menu in repository with name: StandaloneMenu
這個信息是你表里沒有StandaloneMenu 這個內(nèi)容,樓主貼出來的表里的內(nèi)容也得照填.我運行是運行了,但是不穩(wěn)定.時好時壞,不知道怎么回事 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-21 11:30
請教樓主,為什么我的菜單好像根本不運行menuExpandable.js呢?
根本顯示不出圖片
另外漢字也顯示不了!!
緊急求教!!!!!!!!!!!!!!!!!!
我的郵箱hanxb2001@163.com 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-08-21 11:37
我的開發(fā)環(huán)境是JBuilder2005,是在Struts中使用Struts-Menu的。
Struts-Menu.war應(yīng)用拿到JBuilder2005中就運行就不正常!
現(xiàn)在是菜單出來了,但是不是可收縮、展開的,而是直接都展開,費了好幾天勁也解決不了,求助各位兄弟!!!!!!
本人是個JavaScript盲,也不想學(xué)了,只要能夠用就行了。
回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-09-08 13:53
效果圖是蠻漂亮的,不過實現(xiàn)起來怎么這么復(fù)雜啊~~ 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-09-08 13:54
不知道用dtree是不是容易些 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-09-09 15:02
唉,失敗,總是沒有成功!
能不能把你的代碼發(fā)到我郵箱?謝謝,兄弟!
zbwy1984@163.com 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-09-09 15:09
不好意思,偶也木用過,只是隨便這么一說 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-11-04 10:00
其實代碼只有一點小小的錯誤,我運行出來了,我把錯誤總結(jié)一下:
錯誤一: dbMenu\WEB-INF\classes\globalMacros.vm (這個文件好像必須要最后拷貝,否則會自動沒了why???)
應(yīng)該把globalMacros.vm文件放在src源文件的根目錄下,放在classes目錄下每次源文件編譯的時候就會把globalMacros.vm文件刪除掉,
錯誤二:<web-app version="2.3">
不需要加版本號,直接就是:<web-app>
錯誤三:
<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/sql.tld" prefix="sql" %>
這幾個tld文件好像不是最新的,最好是這樣寫
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>
錯誤四:<sql:query var="menus">
SELECT * FROM dm order by id;
</sql:query>
應(yīng)改為 <sql:query var="menus">
SELECT * FROM menu_item order by id;
</sql:query>
最后大家要把數(shù)據(jù)源部分換成自己的數(shù)據(jù)庫參數(shù)
<sql:setDataSource driver="sun.jdbc.odbc.JdbcOdbcDriver" user="" password=""
url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Program Files\\eclipse302\\workspace\dbMenu\\dm.mdb"
var="mydb" />
注意:var只是一個數(shù)據(jù)庫的別名而已。
<sql:transaction dataSource="${mydb}">
這里的dataSource="${mydb}"一定要與別人保持一致 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2005-12-24 00:25
拜托,這也算原創(chuàng)? 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2006-04-30 21:25
<c:forEach var="menu" items="${repository.topMenus}">
<menu-el:displayMenu name="${menu.name}"/>
</c:forEach>
這一句能否不用jstl實現(xiàn)。。。。 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2006-05-01 19:49
我也要一份啊!!!
我的郵箱是:li_fengjobs@163.com 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2006-05-25 16:01
錯誤都不是一樣的.我這里運行錯誤是這樣的
java.sql.SQLException: No suitable driver
搞了兩天都沒解決....氣死我了...
還有一個就是dataSource="${mydb}"我這里這樣寫還提示有錯,把$去掉才沒提示有錯.這是為何..<c:forEach var="menu" items="${repository.topMenus}">這里也是一樣的..我真是不懂.本來想學(xué)學(xué)Struts-menu的,這樣一弄,都不知道怎么做了,以前沒用過.有人幫幫我嗎.. 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2006-05-25 16:02
jdzywang@163.com我的郵箱,有人幫我的話請發(fā)到這里..
ありがとう 回復(fù) 更多評論
-
# 用struts
Posted @ 2008-01-10 19:44
我們公司也有用Struts的,我不是很懂,不過還好,做測試還能應(yīng)付。 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2008-04-04 21:08
@davidy
你不要看就不浪費你時間啦,,, 看了還說風涼話!!! 回復(fù) 更多評論
-
# re: 使用struts-menu_詳細(1)實現(xiàn)動態(tài)菜單
Posted @ 2014-07-17 15:56
中!國!共!產(chǎn)!黨!萬!歲 回復(fù) 更多評論
|