首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

含有自定义标签库的中英文页面

2012-10-23 
带有自定义标签库的中英文页面一个用于选择不同语言的JSP页面%@ page languagejava importjava.util

带有自定义标签库的中英文页面
一个用于选择不同语言的JSP页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html>  <head>        <title>welcome to hello jsp</title>  </head>    <body>    <p><font size=7>Welcome to helloApp</font></p>    <p><a href="WelcomeLogin.jsp?language=English">English Page</a></p>    <p><a href="WelcomeLogin.jsp?language=Chinese">Chinese Page</a></p>     </body></html>





分别为中文和英文的Properties的文件
hello.title=helloapphello.hi=Nice to meet youlogin.title=helloapplogin.user=Usernamelogin.password=Passwordlogin.submit=Submit
hello.title=helloapphello.hi=你好login.title=helloapp的登录页面login.user=用户名login.password= 密码login.submit=登录



用于加载中英文静态文本的Servelt类

package Tag1;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.util.Properties;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {         init();         PrintWriter pw =response.getWriter();         pw.println("The resouce file is reloaded");}public void init() throws ServletException { Properties ps =new Properties(); Properties ps_ch=new Properties();  ServletContext context =getServletContext();  InputStream in=context.getResourceAsStream("/WEB-INF/message.properties"); InputStream in_ch=context.getResourceAsStream("/WEB-INF/message_ch.properties"); try {ps.load(in);ps_ch.load(in_ch);in.close();in_ch.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}context.setAttribute("ps", ps);context.setAttribute("ps_ch", ps_ch); }}


一个标签处理类

package Tag1;import java.util.Properties;import javax.servlet.http.HttpSession;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;public class MessageTag extends TagSupport {    private String key =null;public String getKey() {return key;}public void setKey(String key) {this.key = key;}@Overridepublic int doEndTag() throws JspException {try{    Properties ps =(Properties)pageContext.getAttribute("ps", pageContext.APPLICATION_SCOPE);Properties ps_ch=(Properties)pageContext.getAttribute("ps_ch", pageContext.APPLICATION_SCOPE);HttpSession session=pageContext.getSession();String language=(String)session.getAttribute("language");String message=null;if(language!=null&&language.equals("Chinese")){message =(String)ps_ch.get(key);message=new String(message.getBytes("ISO-8859-1"),"UTF-8");}else{message=(String)ps.get(key);}pageContext.getOut().println(message);}catch(Exception e){e.printStackTrace();}return EVAL_PAGE;}         }



一个标签库
 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"                        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"><taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>MyTag</short-name> <uri>/MyTag</uri><tag>   <name>MyTag</name>   <tag-class>Tag1.MessageTag</tag-class>   <body-content>empty</body-content>   <attribute>      <name>key</name>      <required>true</required>   </attribute> </tag></taglib>


根据选择 显示不同语言的JSP页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="/WEB-INF/MyTag.tld" prefix="cc"%><html>   <%        String language=request.getParameter("language");      if(language==null)      language="English";      session.setAttribute("language",language);        %>  <head>   <title><cc:MyTag key="login.title"/></title>   </head>  <body>    <br>    <form name="LoginForm" method="post" action="Welcomout.jsp">        <cc:MyTag key="login.user"/>:<br>                <input type="text" name="username"><br>        <cc:MyTag key="login.password"/>:<br>        <input type="password" name="password"/><br>        <input type="submit" value="<cc:MyTag key="login.submit"/>"/><br/>    </form>  </body></html>


web.xml配置信息:
  <jsp-config>  <taglib>  <taglib-uri>/WEB-INF/MyTag.tld</taglib-uri>  <taglib-location>/WEB-INF/MyTag.tld</taglib-location></taglib></jsp-config>

热点排行