⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 in3_cn.htm

📁 struts开发实例
💻 HTM
📖 第 1 页 / 共 2 页
字号:
项目下的本项目模板中newfile目录的文件内容对应。所以,用户可根据自己的需要对这些文件的内容进行修改,同时还可自己添加别的类型的文件模板。</span></span></p>
<p><span lang="EN-US" style="font-size:10.5pt">2、中文资源显示问题:</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp; 
在JavaWebStudio中,默认的中文资源文件名是“ApplicationResources_ch.properties”,用户先将中文资源定入文件“ApplicationResources.properties”</span></p>
<p><span style="font-size:10.5pt">然后选择工具条的<span lang="EN-US">“资源文件编码转换”键或选择“运行”菜单上的“资源文件编码转换”项,即可实现编码转换功能。过程如下图所示:</span></span></p>
<p><span lang="EN-US" style="font-size:10.5pt"><!--[if gte vml 1]><v:shape
 id="_x0000_s1027" type="#_x0000_t75" style='width:414.75pt;height:287.25pt'>
 <v:imagedata src="in3_CN_files/image005.png" o:title=""/>
</v:shape><![endif]--><![if !vml]><img border=0 width=553 height=383
src="in3_CN_files/image006.jpg" v:shapes="_x0000_s1027"><![endif]></span></p>
<p><span lang="EN-US" style="font-size:10.5pt"><!--[if gte vml 1]><v:shape
 id="_x0000_s1028" type="#_x0000_t75" style='width:293.25pt;height:181.5pt'>
 <v:imagedata src="in3_CN_files/image007.png" o:title=""/>
</v:shape><![endif]--><![if !vml]><img border=0 width=391 height=242
src="in3_CN_files/image008.jpg" v:shapes="_x0000_s1028"><![endif]></span></p>
<p style="text-indent: 21.0pt"><span style="font-size:
10.5pt">用户先把所有的中文资源写在<span lang="EN-US">ApplicationResources.properties中,完成后再生成新中文的资源文件是ApplicationResources_ch.properties,这里中文资源文件也可改成其它名字,通过是ApplicationResources_cn.properties。</span></span></p>
<p><span lang="EN-US" style="font-size:10.5pt">3、数据库数据中文显示问题:</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp; 
在JavaWebStudio中建立Struts项目时,自动加入了编码转换设置过滤器。</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp; 
可见在JavaWebStudio中,不需编程人员编写任何代码,仅仅点击一个资源文件编码转换键即可完全解决Struts中文显示问题。</span></p>
<p><span style="font-size:10.5pt">过滤器<span lang="EN-US">SetCharacterEncodingFilter.java代码如下:</span></span></p>
<p><span lang="EN-US" style="font-size:10.5pt">package emptyprj.filters;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">import javax.servlet.*;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">import java.io.IOException;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">public class 
SetCharacterEncodingFilter implements Filter {</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">protected String encoding = null;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">protected FilterConfig 
filterConfig = null;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">protected boolean ignore = true;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">public void destroy() {</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">this.encoding = null;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">this.filterConfig = null;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">}</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">public void 
doFilter(ServletRequest request, ServletResponse response,</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">FilterChain chain)</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">throws IOException, 
ServletException {</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">if (ignore || 
(request.getCharacterEncoding() == null)) {</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">String encoding = 
selectEncoding(request);</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">if (encoding != null)</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">
request.setCharacterEncoding(encoding);</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">}</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">chain.doFilter(request, 
response);</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">}</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">public void init(FilterConfig 
filterConfig) throws ServletException {</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">this.filterConfig = filterConfig;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">this.encoding = 
filterConfig.getInitParameter(&quot;encoding&quot;);</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">String value = 
filterConfig.getInitParameter(&quot;ignore&quot;);</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">if (value == null)</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">this.ignore = true;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">else if 
(value.equalsIgnoreCase(&quot;true&quot;))</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">this.ignore = true;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">else if 
(value.equalsIgnoreCase(&quot;yes&quot;))</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">this.ignore = true;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">else</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">this.ignore = false;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">}</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">protected String 
selectEncoding(ServletRequest request) {</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">return (this.encoding);</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">}</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">}//EOC</span></p>
<p><span style="font-size:10.5pt">过滤器在<span lang="EN-US">web.xml中配置,配置方法如下:</span></span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&lt;filter&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;Set Character 
Encoding&lt;/filter-name&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; 
&lt;filter-class&gt;emptyprj.filters.SetCharacterEncodingFilter&lt;/filter-class&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;param-name&gt;encoding&lt;/param-name&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;param-value&gt;GB2312&lt;/param-value&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; &lt;init-param&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;param-name&gt;ignore&lt;/param-name&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;param-value&gt;true&lt;/param-value&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&lt;/filter&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&lt;filter-mapping&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;Set Character 
Encoding&lt;/filter-name&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; 
&lt;servlet-name&gt;action&lt;/servlet-name&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&lt;/filter-mapping&gt;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">&nbsp;</span></p>
<p><span lang="EN-US" style="font-size:10.5pt">4、表单提交参数中的中文解决问题:</span></p>
<p style="text-indent: 21.0pt"><span style="font-size:
10.5pt">例如提交下面的表单,<span lang="EN-US">http://localhost:8080/Logon/UserEditAction.do? 
expression=普通用户。</span></span></p>
<p style="text-indent: 21.0pt"><span style="font-size:
10.5pt">在<span lang="EN-US">Action中读取参数expression时,用下面的句子:</span></span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">
String expression=request.getParameter(&quot;expression&quot;);</span></p>
<p style="text-indent: 21.0pt"><span style="font-size:
10.5pt">得到的<span lang="EN-US">expression是Unicode码,不是我们想要的,先变换成ISO8859-1,变换函数如下:</span></span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">
public String toChinese(String ss) {</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; 
//处理中文问题,实现编码转换</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; 
if (ss != null) {</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
try {</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String temp_p = ss;</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] temp_t = temp_p.getBytes(&quot;ISO8859-1&quot;);</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss = new String(temp_t);</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
catch (Exception e) {</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.err.println(&quot;toChinese exception:&quot; + e.getMessage());</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.err.println(&quot;The String is:&quot; + ss);</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; }</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">&nbsp;&nbsp;&nbsp; 
return ss;</span></p>
<p style="text-indent: 21.0pt"><span lang="EN-US" style="font-size:10.5pt">}</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">使用</span><span lang="EN-US">expression</span><span style="font-family: 宋体">字符串时通过</span><span lang="EN-US">toChinese</span><span style="font-family: 宋体">处理即可:</span></p>
<p class="MsoNormal" style="text-indent: 21.0pt"><span lang="EN-US">
if(expression==null)expression=&quot;&quot;;</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;expression=toChinese(expression);&nbsp; 
//</span><span style="font-family: 宋体">处理中文问题</span><span lang="EN-US">,</span><span style="font-family: 宋体">实现编码转换。</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp; </span><span style="font-family: 宋体">
这些代码在</span><span lang="EN-US">JavaWebStudio</span><span style="font-family: 宋体">中都是自动完成的,用户只要直接使用就行了。</span></p>

</body>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -