<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>inprise_lyj</title>
    <description></description>
    <link>http://inprise-lyj.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Eclipse无插件配置Resinzt</title>
        <author>inprise_lyj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://inprise-lyj.javaeye.com">inprise_lyj</a>&nbsp;
          链接：<a href="http://inprise-lyj.javaeye.com/blog/36091" style="color:red;">http://inprise-lyj.javaeye.com/blog/36091</a>&nbsp;
          发表时间: 2006年11月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体">此配置适用于<span lang="EN-US">Resin2.x</span>和<span lang="EN-US">Resin3.x</span>版本。运行时需要在每个<span lang="EN-US">project</span>目录下放置一个<span lang="EN-US">resin.conf</span>文件，由于<span lang="EN-US">Resin2.x</span>和<span lang="EN-US">Resin3.x</span>版本的配置文件不同，所以需要两个文件，<span lang="EN-US">resin.conf</span>文件用于启动<span lang="EN-US">resin2.x</span>，<span lang="EN-US">resin30.conf</span>用于启动<span lang="EN-US">resin3.x</span>。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><font face="宋体">&nbsp;</font></o:p></span></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体">以下说明以配置<span lang="EN-US">Resin2.1.16</span>版本为例，具体步骤如下：<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">1</span>、打开&ldquo;<span lang="EN-US">window-&gt;Preferences-&gt;Java-&gt;Build Path-&gt;Classpath Variables</span>&rdquo;，添加<span lang="EN-US">classpath variables</span>，将基配置到<span lang="EN-US">Resin</span>的安装目录。比如在我的机器上配置为：<span lang="EN-US">Resin_2.1.16 </span>－<span lang="EN-US">D:/Program/JavaSoft/resin-2.1.16</span>。最好同时配置一个<span lang="EN-US">JDK_TOOLS</span>，指定到<span lang="EN-US">java_home</span>下的<span lang="EN-US">lib/tools.jar</span>文件上，否则可能会在控制台输出时中文显示成乱码。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">2</span>、运行菜单&ldquo;<span lang="EN-US">Run-&gt;Run...</span>&rdquo;，在弹出的窗口中添加一个<span lang="EN-US">Java Application</span>的运行项目。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">3</span>、项目名称随便添写，只要能区分出不同的应用就可以了。如：<span lang="EN-US">resin_2.1.16</span>。在<span lang="EN-US">Project</span>一项置为空，如果已经有内容了则将其删除，这要才能保证在每个项目中都可以运行。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">4</span>、设置项目的启动类（<span lang="EN-US">Main Class</span>），<span lang="EN-US">Resin2.x</span>为<span lang="EN-US">com.caucho.server.http.HttpServer</span>，<span lang="EN-US">Resin3.x</span>为<span lang="EN-US">com.caucho.server.http.ResinServer</span>。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">5</span>、配置<span lang="EN-US">Arguments</span>，在<span lang="EN-US">Program arguments</span>中填写<span lang="EN-US">-conf &quot;${project_loc}\resin.conf&quot;</span>，（如果配置<span lang="EN-US">Resin3.x</span>则填写<span lang="EN-US">-conf &quot;${project_loc}\resin30.conf&quot;</span>）。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">6</span>、在<span lang="EN-US">VM arguments</span>中为空（如果是<span lang="EN-US">Resin3.x</span>则填写<span lang="EN-US">-Djava.util.logging.manager=com.caucho.log.LogManagerImpl</span>）<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">7</span>、指定<span lang="EN-US">Working directory</span>为<span lang="EN-US">resin</span>的安装目录。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">8</span>、配置<span lang="EN-US">JRE</span>，保持默认配置即可，如果是<span lang="EN-US">resin3.x</span>版本可能需要<span lang="EN-US">jre5.0</span>。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">9</span>、配置<span lang="EN-US">classpath</span>，选择<span lang="EN-US">Bootstrap Entries</span>，点击<span lang="EN-US">Advanced</span>，选择<span lang="EN-US">Add Classpath Variables</span>，选择<span lang="EN-US">Resin_2.1.16</span>，点击<span lang="EN-US">Extend</span>，将<span lang="EN-US">lib</span>目录下的所有<span lang="EN-US">jar</span>文件选中，添加到启动项目中，然后将<span lang="EN-US">JDK_TOOLS</span>也加到启动项目中。<span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoPlainText" style="MARGIN: 0cm 0cm 0pt"><font face="宋体"><span lang="EN-US">10</span>、保证配置。在项目的根目录下放置<span lang="EN-US">resin.conf</span>，在<span lang="EN-US">eclipse</span>的<span lang="EN-US">Run</span>菜单中将<span lang="EN-US">Resin_2.1.16</span>加入到收藏中，选择项目或是项目中的某个文件，然后运行<span lang="EN-US">Resin_2.1.16</span>即可。<span lang="EN-US"><o:p></o:p></span></font></p>
<p>&nbsp;以上配置在Eclipse3.1.1/3.1.2、Resin2.1.16/Resin3.0.15上测试通过。</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://inprise-lyj.javaeye.com/blog/36091#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 27 Nov 2006 09:57:07 +0800</pubDate>
        <link>http://inprise-lyj.javaeye.com/blog/36091</link>
        <guid>http://inprise-lyj.javaeye.com/blog/36091</guid>
      </item>
      <item>
        <title>webwork文件上传</title>
        <author>inprise_lyj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://inprise-lyj.javaeye.com">inprise_lyj</a>&nbsp;
          链接：<a href="http://inprise-lyj.javaeye.com/blog/25288" style="color:red;">http://inprise-lyj.javaeye.com/blog/25288</a>&nbsp;
          发表时间: 2006年09月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          step1:<br />页面定义如下<br />    &lt;form action="upload.do" enctype="multipart/form-data" method="post"><br />            &lt;input type="file" name="doc"/><br />             ......................... 省略<br />   &lt;/form><br /><br />step2<br />    action 如下<br />    public class UploadAction extends ActionSupport {<br />          .....................................<br />          private File doc;//doc与页面取一样的名字<br /><br />          public void setDoc(File doc) {<br />                 this.doc = doc; <br />         }<br /><br />         //当然还可以使用以下的咚咚<br />  /*<br />     * public void setDocContentType(String docContentType) {<br />     * this.docContentType = docContentType; }<br />     * <br />     *//**<br />         * <br />         * @author weip<br />         * @time 0:23:24 2006-5-11<br />         * @param docFileName<br />         */<br />    /*<br />     * public void setDocFileName(String docFileName) { this.docFileName =<br />     * docFileName; }<br />     */<br /><br />    /**<br />     * <br />     */<br />    /*<br />     * private String docContentType;<br />     * <br />     *//**<br />         * <br />         */<br />    /*<br />     * private String docFileName;<br />     */<br /><br />.............................................................<br /><br />   }<br /><br />当程序进入到action当中时,你可以开始处理上面代码中的doc,此时文件已上传到服务器中的一个临时目录(同时被注入到action中就是你看到的 doc),此临时目录由webwork.properties指定,你必须将此文件拷贝到你需要的目录,否则action执行完毕,此文件会被删除,准确说是拦截器的后处理删除了临时文件,这一段结论的前提是你使用拦截器处理上传<br /><br />step3<br />处理配置文件,配置拦截器<br /><br />&lt;action name="upload" class="com.mofile.baby.web.action.signup.UploadAction"><br />           <br />            &lt;result name="success" type="freemarker">/page/signup/uploadfile.htm&lt;/result><br />            &lt;interceptor-ref name="fileUpload"/><br />            &lt;interceptor-ref name="defaultWebStack"/><br />          <br />  &lt;/action><br /><br />step4<br />对于webwork.properties的一些处理<br />webwork in action上推荐使用webwork.multipart.parser=jakarta而不是默认的 pell,如果使用前者,不要忘了在你的lib中加入commons-fileupload.jar<br /><br /><br />需要注意的问题:<br />你在使用fileUpload传拦截器的时候应该避免使用execAndWait拦截器,否则很有可能会出现空指针,因为execAndWait拦截器会在另一个线程处理action,而原来的线程会删掉临时文件,所以当你在action中处理文件的时候很有可能文件已被删掉,虽然这并非一定会出现,但毕竟不安全
          <br/><br/>
          <span style="color:red;">
            <a href="http://inprise-lyj.javaeye.com/blog/25288#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Sep 2006 11:55:05 +0800</pubDate>
        <link>http://inprise-lyj.javaeye.com/blog/25288</link>
        <guid>http://inprise-lyj.javaeye.com/blog/25288</guid>
      </item>
      <item>
        <title>webwork学习2 zt</title>
        <author>inprise_lyj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://inprise-lyj.javaeye.com">inprise_lyj</a>&nbsp;
          链接：<a href="http://inprise-lyj.javaeye.com/blog/24413" style="color:red;">http://inprise-lyj.javaeye.com/blog/24413</a>&nbsp;
          发表时间: 2006年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          表单数据的获取 <br />1、Action：“Form.java”<br />--------------------------<br /><br />import com.opensymphony.xwork.ActionSupport;<br />import java.util.ArrayList;<br /><br />public class Form extends ActionSupport{<br />      <br />      String name;<br />      int sex;<br />      boolean mem = false;<br />      ArrayList fav = new ArrayList();<br />      String concat;<br />          <br />      public String getName() {<br />          return this.name;<br />      }<br />      <br />      public void setName(String name) {<br />          this.name = name;<br />      }<br />      <br />      public void setSex(int sex) {<br />          this.sex = sex;<br />      }<br />      <br />      public int getSex() {<br />          return this.sex;<br />      }<br />      <br />      public void setFav(String[] favs) {<br />          for (int i = 0; i &lt; favs.length; ++i) {<br />              this.fav.add(favs[i]);<br />          }<br />      }<br />      <br />      public ArrayList getFavs() {<br />          return this.fav;<br />      }<br />      <br />      public void setConcat(String concat) {<br />          this.concat = concat;<br />      }<br />      <br />      public String getConcat() {<br />          return this.concat;<br />      }<br />      <br />      public void setMem(boolean mem) {<br />          this.mem = mem;<br />      }<br />      <br />      public boolean getMems() {<br />          return this.mem;<br />      }<br />      <br />      public String execute() throws Exception {<br />          if (this.name == null || this.name.equals("")) {<br />              return "input";<br />          }<br />          return "success";<br />      }<br />      <br />}<br /> <br /><br /><br />2、“input.jsp”<br />--------------------------<br /><br />&lt;%@page contentType="text/html"%><br />&lt;%@page pageEncoding="gbk"%><br />&lt;%@ taglib uri="/WEB-INF/webwork.tld" prefix="ww" %> <br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<br />     "http://www.w3.org/TR/html4/loose.dtd"><br /><br />&lt;html><br />      &lt;head><br />          &lt;meta http-equiv="Content-Type" content="text/html; charset=gbk"><br />          &lt;title>个人资料&lt;/title><br />      &lt;/head><br />      &lt;body><br /><br />      &lt;h1>请填写你的个人资料&lt;/h1><br />      <br />          &lt;form action="Fav.action" name="f" method="post"><br />              姓名：&lt;input type="text" name="name" value="">&lt;br /><br />              性别：&lt;input type="radio" name="sex" value="1" checked="true">男  &lt;input type="radio" name="sex" value="0">女&lt;br /><br />              爱好：<br />              &lt;select size="6" name="fav" multiple="true"><br />                  &lt;option value="打球">打球&lt;/option><br />                  &lt;option value="听音乐">听音乐&lt;/option><br />                  &lt;option value="看电影">看电影&lt;/option><br />                  &lt;option value="看书">看书&lt;/option><br />                  &lt;option value="跑步">跑步&lt;/option><br />                  &lt;option value="爬山">爬山&lt;/option><br />              &lt;/select>&lt;br /><br />              联系方式：&lt;input type="text" name="concat">&lt;br /><br />              是否党员：&lt;input type="checkbox" name="mem" value="true"><br />              &lt;input type="submit" value="确定"> &lt;input type="reset" value="重置"><br />          &lt;/form><br />      &lt;/body><br />&lt;/html><br /> <br /><br /><br />3、“success.jsp”<br />--------------------------<br /><br />&lt;%@page contentType="text/html"%><br />&lt;%@page pageEncoding="gbk"%><br />&lt;%@ taglib uri="/WEB-INF/webwork.tld" prefix="ww" %> <br /><br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<br />     "http://www.w3.org/TR/html4/loose.dtd"><br /><br />&lt;html><br />      &lt;head><br />          &lt;meta http-equiv="Content-Type" content="text/html; charset=gbk"><br />          &lt;title>个人资料&lt;/title><br />      &lt;/head><br />      &lt;body><br />      &lt;h3><br />      欢迎您的到来：&lt;ww:property value="name" escape="true" />，以下是您填写的资料：&lt;hr /><br />      性别：&lt;ww:if test="sex == 1">男&lt;/ww:if>&lt;ww:else>女&lt;/ww:else>&lt;br /><br />      爱好：<br />      &lt;ul><br />      &lt;ww:iterator value="favs"><br />          &lt;ww:if test="top == '爬山'"><br />          &lt;li>&lt;span style="color:red">&lt;ww:property/> &lt;/span>&lt;/li><br />          &lt;/ww:if><br />          &lt;ww:else><br />          &lt;li>&lt;ww:property/>&lt;/li><br />          &lt;/ww:else><br />      &lt;/ww:iterator><br />      &lt;/ul><br />      &lt;br /><br />      联系方式：&lt;ww:property value="concat" /><br />      &lt;br /><br />      是否党员：&lt;ww:if test="mems == true">是&lt;/ww:if>&lt;ww:else>否&lt;/ww:else><br />      &lt;br /><br />      &lt;a href="Fav.action">点击此处返回重填&lt;/a><br />      &lt;/h3><br />      &lt;/body><br />&lt;/html>
          <br/><br/>
          <span style="color:red;">
            <a href="http://inprise-lyj.javaeye.com/blog/24413#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 15 Sep 2006 09:09:29 +0800</pubDate>
        <link>http://inprise-lyj.javaeye.com/blog/24413</link>
        <guid>http://inprise-lyj.javaeye.com/blog/24413</guid>
      </item>
      <item>
        <title>webwork学习3</title>
        <author>inprise_lyj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://inprise-lyj.javaeye.com">inprise_lyj</a>&nbsp;
          链接：<a href="http://inprise-lyj.javaeye.com/blog/24412" style="color:red;">http://inprise-lyj.javaeye.com/blog/24412</a>&nbsp;
          发表时间: 2006年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          SESSION的使用及文件上传 <br />在WebWork2中使用SESSION是很简单的事情，导入类“com.opensymphony.webwork.ServletActionContext”之后，可以这样操作SESSION:<br />Map session = (Map)ServletActionContext.getContext().getSession();<br />session.put("name", "tom");<br />session.get("name");<br />之后在视图（这里指jsp文件）用“&lt;ww:property value="#session.name" />”的方式得到session的值<br />（注：可用“ServletActionContext.getResponse()”方法得 “javax.servlet.http.HttpservletResponse”、 “ServletActionContext.getRequest()”方法得 “javax.servlet.http.HttpServletRequest”，用来对cookie进行写入及读取操作，这样就可直接用底层的 Servlet一些类了）<br /><br />在WebWork2中上传文件也是很简单的事情<br />首先，在"WEB-INF/classes/"目录下建立文件“webwork.properties”，内容如下：<br />----------------------<br /><br />webwork.i18n.encoding=gbk<br />webwork.locale=zh_cn<br />webwork.multipart.saveDir=/tmp<br />webwork.multipart.maxSize=5242880<br />webwork.multipart.parser=com.opensymphony.webwork.dispatcher.multipart.<br />PellMultiPartRequest<br /> <br /><br />----------------------<br /><br />在Action中可以这样写：<br /><br />import com.opensymphony.webwork.dispatcher.multipart.MultiPartRequestWrapper;<br />import com.opensymphony.xwork.ActionSupport;<br />import com.opensymphony.webwork.ServletActionContext;<br />import java.io.File;<br /><br />public void execute() throws Exception {<br />MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper)ServletActionContext.getRequest();<br />File file = wrapper.getFile("uf");<br />if (file == null) {<br />return ERROR;<br />}<br />this.setFileName(file.getName());<br />file.renameTo(new File("/tmp/" + file.getName()));<br />return SUCCESS;<br />}<br /> <br /><br />这样就把文件（“表单中文件字段的名称为：uf”）上传并保存在了“/tmp/”目录下。<br /><br />MultiPartRequestWrapper类的API可参考：http://www.opensymphony.com/webwork/api/
          <br/><br/>
          <span style="color:red;">
            <a href="http://inprise-lyj.javaeye.com/blog/24412#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 15 Sep 2006 09:06:28 +0800</pubDate>
        <link>http://inprise-lyj.javaeye.com/blog/24412</link>
        <guid>http://inprise-lyj.javaeye.com/blog/24412</guid>
      </item>
      <item>
        <title>webwork学习4</title>
        <author>inprise_lyj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://inprise-lyj.javaeye.com">inprise_lyj</a>&nbsp;
          链接：<a href="http://inprise-lyj.javaeye.com/blog/24409" style="color:red;">http://inprise-lyj.javaeye.com/blog/24409</a>&nbsp;
          发表时间: 2006年09月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          i18n资源文件及标签的使用 <br />先来说说资源文件，一般小型项目的资源文件一个就可以了，所以可以在webwork.xml文件中这样设置：<br />webwork.custom.i18n.resources=main<br />然后在“WEB-INF/classes/”目录中建立一个“main.properties”资源文件即可。这里要注意的是如果资源文件中包含中文字符串的时候是不能正常显示在视图中的，一般的解决办法是用jdk自带的“native2ascii”程序把文件中的中文字符串转换为uxxxx16进制的 utf-8编码才可以。<br /><br />如果每个Action想要独立的使用一个资源文件，可以在“WEB-INF/classes/package/.../”建立一个相应的“ActionName.properties”的资源文件即可（和“ActionName.class”在同一个目录下）。<br /><br />搞定了资源文件后，接着要在视图中使用它，只需要用“getText('key.name')”，如“&lt;webwork:property value="getText('key.name')">”像这样即可。<br /><br />一些常用的标签：<br />1、&lt;webwork:property /><br />     输出一个属性的值，如：&lt;webwork:property value="user" />，这会调用Action的“getUser()”方法，该访问返回的值就是输出的结果。&lt;webwork:property value="page.title" escape="true"/>会调用Action的“getPage().getTitle()”方法，“escape”表示对htlm的字符串进行编码，相当于php的“htmlspecialchars()”函数，设置为“true”时有用，默认为“false”。<br /><br />2、&lt;webwork:param /><br />    为父标签设置参数，如：<br />---------------<br />&lt;webwork:bean name="net.cnzxh.test" id="test"><br />    &lt;webwork:param name="paramName" value="paramValue"><br />&lt;/webwork:bean><br />---------------<br /><br />3、&lt;webwork:set /><br />    设置一个变量，该变量可以在jsp中使用，如“&lt;webwork:property value="#newVar">”或“&lt;c:out value="newVar" />”，例：<br />---------------<br />&lt;webwork:set name="name" value="xianhua.zhou" scope="request"><br />&lt;c:out value="name" escapeXml="true"/><br />&lt;br/><br />&lt;webwork:set name="name2" value="zhouxh" scope="webwork"><br />&lt;webwork:property value="#name2"><br />输出：<br />xianhuz.zhou<br />zhouxh<br />---------------<br />该标签的“scope”可选范围有：page、request、session、application、stack、webwork<br /><br />4、&lt;webwork:action /><br />    执行其它的Action，并可返回结果，如：<br />---------------<br />&lt;webwork:action name="database" id="dbinfo"><br />     &lt;webwork:param name="db" value="mysql" /><br />&lt;/webwork><br />&lt;webwork:property name="#dbinfo.maxConnections" /><br />&lt;webwork:property name="#dbinfo.startupTimes" /><br />---------------<br /><br />5、&lt;webwork:push /><br />    增加一个对象至栈的顶部，如：<br />---------------<br />&lt;webwork:set name="list" value="{'', 'two', 'three'}"/><br />&lt;webwork:push value="list"><br />    &lt;webwork:property value="'top'" /><br />&lt;/webwork:pust><br />最后的list值为：<br />['top', 'two', 'three']<br />---------------<br /><br />6、&lt;webwork:bean /><br />    建立一个bean的实例以便使用它，和“&lt;jsp:useBean />”的标签有点类似，如：<br />---------------<br />&lt;webwork:bean name="'net.cnzxh.bean'" id="obj"><br />    &lt;webwork:param name="'message'" value="'set some text... to message.'" /><br />&lt;/webwork><br />&lt;webwork:property value="#obj.result" /><br />---------------<br />上面建立了“net.cnzxh.bean”类的一个实例并以“obj”命名以便引用它，接着用“&lt;webwork:param />”标签调用其方法“setMessage(String message)”，传递了相应的值，最后使用“&lt;webwork:property />”标签输出结果，调用了“obj.getResult()”方法<br /><br />7、&lt;webwork:include /><br />    包含一个页面至当前页面中，可以是静态页面也可以是动态的页面，如：<br />---------------<br />&lt;webwork:include page="'test.jsp'" /><br />或者<br />&lt;webwork:include page="'test.action'" /><br />---------------<br /><br />8、&lt;webwork:if />、&lt;webwork:elseif />、&lt;webwork:else /><br />    一些逻辑判断语句，如：<br />---------------<br />&lt;webwork:set name="num" value="1" /><br />&lt;webwork:if test="#num == 1"><br />    num = 1<br />&lt;/webwork:if><br />&lt;webwork:elseif test="#num == 2"><br />    num = 2<br />&lt;/webwork:elseif><br />&lt;webwork:else><br />    unknow num<br />&lt;/webwork:else><br />---------------<br />注意：假如判断的是字符串的话需要这样“test="#var == 'some message'"”，值要用单引号“'”引起来才可以，数字或布尔型的数据不需要。
          <br/><br/>
          <span style="color:red;">
            <a href="http://inprise-lyj.javaeye.com/blog/24409#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 15 Sep 2006 08:48:15 +0800</pubDate>
        <link>http://inprise-lyj.javaeye.com/blog/24409</link>
        <guid>http://inprise-lyj.javaeye.com/blog/24409</guid>
      </item>
      <item>
        <title>使用javamail处理中文遇到的一些棘手问题及解决方法(zt)</title>
        <author>inprise_lyj</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://inprise-lyj.javaeye.com">inprise_lyj</a>&nbsp;
          链接：<a href="http://inprise-lyj.javaeye.com/blog/22844" style="color:red;">http://inprise-lyj.javaeye.com/blog/22844</a>&nbsp;
          发表时间: 2005年01月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          先从最棘手的来吧<br /><br />1.如何正确显示邮件内容为中文明码而且Content-Type里没有指定charset的邮件<br /><br />   据我所知，新浪发出的邮件都是这样的,我的youmail里无法正确显示，为乱码.后来分析内容，才知道是他们的邮件里没有指定charset..<br />邮件内容部分如:<br /><br />From: hrbtvu_ly &lt;foo@sina.com&gt; <br />To: foo@mail.foo.com <br />Subject: 你好啊 <br />MIME-Version: 1.0 <br />Date: Thu, 11 Nov 2004 12:51:30 +0800 <br />X-Mailer: SinaMail 3.0Beta (FireToad) <br />X-Priority: 3 <br />X-Antivirus-MYDOMAIN-1.22-st-qms: added fake Content-Type header <br />Content-Type: textplain <br /><br />你好啊 <br /><br />可以看出连标题都是中文明码的，这个我后面讲到如何处理.<br />我的解决方法是:修改com.sun.mail.handlers.text_plain类的getCharset()，修改成:<br />    <br />private String getCharset(String s) <br />    { <br />        try <br />        { <br />            ContentType contenttype = new ContentType(s); <br />            String s1 = contenttype.getParameter("charset"); <br />            if(s1 == null) <br />                s1 = "gb2312"; <br />            return MimeUtility.javaCharset(s1); <br />        } <br />        catch(Exception _ex) <br />        { <br />            return "gb2312"; <br />        } <br />    } <br /><br />这是我认为最简单的办法了.<br /><br />2.Subject或其他字段为中文明码的处理<br /><br />这里我提供我写的一个方法,能够统一处理编码过的或者明文的字符串:<br />    <br />/** <br />     * 返回解码后的字符串 <br />     */ <br />    public static String getDecodeText(String eword) { <br />        if (eword == null) return null; <br />        try { <br />            Pattern p = Pattern.compile("=\\?.+\\?="); <br />            Matcher m = p.matcher(eword); <br />            StringBuffer sb = new StringBuffer(); <br />            boolean result = m.find(); <br />            if (result) { <br />                while (result) { <br />                    m.appendReplacement(sb, MimeUtility.decodeText(m.group())); <br />                    result = m.find(); <br />                } <br />                m.appendTail(sb); <br />                return sb.toString(); <br />            } else { <br />                String decodevalue = new String(eword.getBytes("ISO8859-1"), "GBK"); <br />                return decodevalue; <br />            } <br />        } catch (Exception e) { <br />            e.printStackTrace(); <br />            return eword; <br />        } <br />    } <br /><br /><br />3.发送邮件中中文的处理<br /><br />   邮件标题: newmsg.setSubject(subject, "GBK");<br />   附件:<br />  BASE64Encoder enc = new BASE64Encoder();<br />   mbp2.setFileName("=?GBK?B?" + enc.encode((new String(ai.getFileName()).getBytes("GBK"))) + "?=");<br />   这只是给出一个方法，具体你还要自己改一改<br />  内容:msg.setContent(body, "text/plain;CHARSET=utf8");<br />  主要原则是处处指定charset<br /><br />今天先说这么多了，
          <br/><br/>
          <span style="color:red;">
            <a href="http://inprise-lyj.javaeye.com/blog/22844#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Jan 2005 21:03:02 +0800</pubDate>
        <link>http://inprise-lyj.javaeye.com/blog/22844</link>
        <guid>http://inprise-lyj.javaeye.com/blog/22844</guid>
      </item>
  </channel>
</rss>