Usually,When we develop our web application,we need create menu.We can use Javascript to design web menu,but if thus,we have to compile many codes,and our application hasn't good revisability and maintainability .Struts-menu provides us a convenient web menu design way,we can put our web menu data in a menu-config.xml configuration file,and read the data with struts-menu lable.
2. Struts Menu Example
You can go here http://demo.raibledesigns.com/struts-menu/ to see the example;
Or download the example application :struts-menu-2.3.zip,follow the below instruction:
Unzip it to a local directory.
Download and install Tomcat or another Java Servlet container.
Put struts-menu.war in Tomcat's webapps folder and start the server.
Go to http://localhost:8080/struts-menu
3. Integrating Struts Menu into your application
1. Place struts-menu-2.3.jar into your app's WEB-INF/lib directory.(maybe you also need put common-lang.jar)
2. Place struts-menu.tld,and struts-menu-el.tld into your app's WEB-INF directory
3. Copy the common,images,scripts,template,styles directory from the above struts-menu.war exmaple application to your web directory.(if use Myeclipse,put those directorys in webroot directory)
4. Add the plug-in settings to your struts-config.xml file.
<plug-in className="net.sf.navigator.menu.MenuPlugIn">
<set-property property="menuConfig"
value="/WEB-INF/menu-config.xml"/>
</plug-in>
5. You will need to declare your menu's attributes in a your App /WEB-INF/menu-config.xml file.Here's a short snippet of what might look like:
<Menu name="contactMenu" title="Contact" location="?Contact">
<Item name="email" title="E-Mail" location="?EMail"/>
<Item name="phone" title="Phone" location="?Phone"/>
</Menu>
6. Add a taglib declaration to the top of your JSP:
<%@ taglib uri="http://struts-menu.sf.net/tag" prefix="menu" %>
7. Add taglib code to render your menu in your JSP:
<menu:useMenuDisplayer name="TabbedMenu"
bundle="org.apache.struts.action.MESSAGE">
<menu:displayMenu name="Home"/>
<menu:displayMenu name="About"/>
</menu:useMenuDisplayer>
8. Below is a whole test.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri=" <%@ taglib uri=" <html:html>
<head>
<html:base />
<title>menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" media="screen"
href="styles/global.css" />
<link rel="stylesheet" type="text/css" media="screen"
href="styles/coolmenu.css" />
<script type="text/javascript" src="scripts/coolmenus4.js"></script>
<script type="text/javascript" src="scripts/cm_addins.js"></script>
</head>
<body>
<script type="text/javascript" src="scripts/coolmenu4-config.js"></script>
<menu:useMenuDisplayer name="CoolMenu4"
bundle="org.apache.struts.action.MESSAGE">
<menu:displayMenu name="Home"/>
<menu:displayMenu name="About"/>
</menu:useMenuDisplayer>
</body>
</html:html>
import javax.servlet.http.HttpServlet;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import javax.servlet.http.*;
import java.io.IOException;
public class CharacterEncodingFilter
extends HttpServlet
implements Filter {
private FilterConfig filterConfig;
private String targetEncoding = "ASCII";
/**
* Called by the web container to indicate to a filter that it is being placed
* into service.
*
* @param filterConfig FilterConfig
* @throws ServletException
* @todo Implement this javax.servlet.Filter method
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.targetEncoding = filterConfig.getInitParameter("encoding");
}
/**
* The <code>doFilter</code> method of the Filter is called by the container
* each time a request/response pair is passed through the chain due to a
* client request for a resource at the end of the chain.
*
* @param request ServletRequest
* @param response ServletResponse
* @param chain FilterChain
* @throws IOException
* @throws ServletException
* @todo Implement this javax.servlet.Filter method
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException {
try {
HttpServletRequest request = (HttpServletRequest) srequest;
request.setCharacterEncoding(targetEncoding);
chain.doFilter(srequest, sresponse);
}
catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
}
catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}
/**
* Called by the web container to indicate to a filter that it is being taken
* out of service.
*
* @todo Implement this javax.servlet.Filter method
*/
public void destroy() {
filterConfig = null;
targetEncoding = null;
}
}
3.config web.xml
attention: add these to your web.xml
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.victory.util.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.set database configration
modify the file: my.ini
[client] default-character-set=utf8
[mysqld] default-character-set=utf8
5.restart Mysql server
6.modified your table coding way to utf8
or ceate your table like this :
CREATE TABLE `user` (
`ID` int(11) NOT NULL auto_increment,
`USERNAME` varchar(50) NOT NULL default '',
`PASSWORD` varchar(50) NOT NULL default '',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
7.restrart your tomcat sever
OK,it's all.
Authrougn I have sovled my problem, I think I don't have enough understanding for it, So hope communicate with you!
Attention:mess code also exist in your database,through page hasn't mess code.