`
bosschen
  • 浏览: 197088 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

dwr根据输入中文得到拼音和简拼

阅读更多

首先下载最新的dwr包:dwr.jar

在web.xml中配置如下

<servlet>
  <servlet-name>dwr-invoker</servlet-name>
  <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
  <init-param>
   <param-name>config-recruit</param-name>
   <param-value>WEB-INF/search-dwr.xml</param-value>
  </init-param>
  <init-param>
   <param-name>debug</param-name>
   <param-value>true</param-value>
  </init-param>
 </servlet>

其中search-dwr.xml放置自己写的配置文件

由中文得到拼音和简拼的方法如下

 

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

/**
 * 汉字转换位汉语拼音,英文字符不变
 *
 * @author xuke
 *
 */
public class SearchKeySpell {

 /**
  * 汉字转换位汉语拼音首字母,英文字符不变
  *
  * @param chines
  * 汉字
  * @return 拼音
  */
 public static String converterToFirstSpell(String chines) {
  String pinyinName = "";
  char[] nameChar = chines.toCharArray();
  HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
  defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  for (int i = 0; i < nameChar.length; i++) {
   if (nameChar[i] > 128) {
    try {
     pinyinName += PinyinHelper.toHanyuPinyinStringArray(
       nameChar[i], defaultFormat)[0].charAt(0);
    } catch (BadHanyuPinyinOutputFormatCombination e) {
     e.printStackTrace();
    }
   } else {
    pinyinName += nameChar[i];
   }
  }
  return pinyinName;
 }

 /**
  * 汉字转换位汉语拼音,英文字符不变
  *
  * @param chines
  * 汉字
  * @return 拼音
  */
 public static String converterToSpell(String chines) {
  String pinyinName = "";
  char[] nameChar = chines.toCharArray();
  HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
  defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  for (int i = 0; i < nameChar.length; i++) {
   if (nameChar[i] > 128) {
    try {
     pinyinName += PinyinHelper.toHanyuPinyinStringArray(
       nameChar[i], defaultFormat)[0];
    } catch (BadHanyuPinyinOutputFormatCombination e) {
     e.printStackTrace();
    }
   } else {
    pinyinName += nameChar[i];
   }
  }
  return pinyinName;
 }
 /*
  * 注:下面的main函数在执行的时候,会出现版本错误。 解决方法:把该项目的配置设为jdk1.5即可。如果不用main函数,则不需要改配置。
  * public static void main(String[] args) {
  * System.out.println(converterToSpell("欢迎来到中国"));
  * System.out.println(converterToFirstSpell("欢迎来到中国")); }
  */

 

search-dwr.xml文件如下

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
  <allow>    
    <!-- 得到关键字的拼音和简拼 -->
 <create javascript="searchKeySpell" creator="new">
  <param name="class" value="com.hys.medicaldb.struts.action.system.searchKey.SearchKeySpell"></param>
 </create>
 <convert converter="bean" match="com.hys.medicaldb.struts.action.system.searchKey.SearchKeySpell"></convert>
  </allow>
</dwr>

下面是jsp页面中要引用的js

其中${ctx} == /medicaldb 是我的项目名称路径,你可以改为自己的项目名

<script type="text/javascript" src="${ctx}/dwr/util.js"></script>
  <script type="text/javascript" src="${ctx}/dwr/engine.js"></script>
  <script type="text/javascript"
   src='/medicaldb/dwr/interface/searchKeySpell.js' /></script>
  <style>

searchKeySpell.js'的名字searchKeySpell一定要和search-dwr.xml中的相同。

下面在简拼和拼音中定义用于显示结果的id,在关键词中定义id和onchange或者onblur事件。

<tr>
     <td width="100" class="td1">
      关键词:
     </td>
     <td class="td1">
      <input type="text" name="keyWord" size="20" id="keyWord"
       maxlength="50" elname="关键字" required="1" pattern="String"
       onchange="trans()" class="input_style"
       value="${searchKey.keyWord}" />
      <span id="red">*</span>请输入关键词
     </td>
    </tr>
    <tr>
     <td width="100" class="td1">
      简拼:
     </td>
     <td class="td1">
      <input type="text" name="jianpin" size="20" id="jianpin"
       maxlength="50" class="input_style" value="${searchKey.jianpin}" />
     </td>
    </tr>
    <tr>
     <td width="100" class="td1">
      拼音:
     </td>
     <td class="td1">
      <input type="text" name="pinyin" size="20" id="pinyin"
       maxlength="50" class="input_style" value="${searchKey.pinyin}" />
     </td>
    </tr>

下面是js文件

//转换
 function trans(){
  var keyWord = document.getElementById("keyWord").value;
  searchKeySpell.converterToFirstSpell(keyWord,setJianpin);
  searchKeySpell.converterToSpell(keyWord,setPinyin);
 }
 //转换为拼音
 function setPinyin(data){
  DWRUtil.setValue("pinyin",data);
 }
 //转换为简拼
 function setJianpin(data){
  DWRUtil.setValue("jianpin",data);
 }

 

以上代码完全通过调试。如果哪位读者有疑问,请发邮件361570665@qq.com给我,我会详细解答。

分享到:
评论

相关推荐

    DWR中文文档DWR

    DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器...通过深入学习这份DWR中文文档,开发者不仅可以掌握DWR的基本用法,还能了解到如何在实际项目中有效利用DWR提升Web应用的性能和用户体验。

    Dwr+AutoComplete+pinyin4j 自动匹配(中文,拼音)

    pinyin4j则是一个Java库,专门用于处理汉字和拼音之间的转换。在中文环境中,特别是在搜索引擎和自动匹配功能中,将汉字转换为拼音是必不可少的步骤。pinyin4j能提供精准的汉字转拼音服务,包括全拼和简拼,还能处理...

    DWR3.0.jar、DWR.war和DWR2.0中文说明文档

    这份文档对于理解DWR的工作原理和使用方法至关重要,特别是对于中文用户来说。DWR2.0文档可能会涵盖以下几个方面: - **安装与配置**:介绍如何将DWR添加到现有项目中,包括引入jar文件、配置web.xml和dwr.xml文件...

    dwr dwrdwr

    dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr

    DWR 教程 中文API DWR.xml配置文件说明 DWR学习笔记

    "DWR中文API"是DWR库的中文参考文档,详细列出了各种接口、类和方法,是开发者查找和理解DWR功能的重要参考资料。API文档通常会包括每个类的描述、方法签名、参数说明和返回值,帮助开发者快速定位并使用所需的功能...

    DWR2.0中文文档

    ### DWR2.0中文文档知识点解析 #### DWR概览 DWR(Direct Web Remoting)是一种开源框架,用于简化Ajax应用的开发过程。它允许JavaScript直接调用服务器端的Java方法,从而实现了客户端与服务器端之间的无缝交互。...

    dwr和ajax技术

    - **DWR中文文档.pdf**:DWR的中文官方文档,提供了详细的技术指南和API参考。 - **jstl讲义.ppt**:可能是关于JSTL的教程材料,帮助理解JSTL的使用和功能。 - **dwr使用步骤.txt**:可能包含了DWR的配置和使用步骤...

    DWR中文教程(外带DWR包)

    这个“DWR中文教程(外带DWR包)”为初学者提供了一个全面的入门指南,帮助理解并掌握DWR的基本概念和实际应用。 首先,我们来了解一下DWR的核心功能。DWR允许前端JavaScript代码直接调用后端服务器的Java方法,就...

    dwr3.0以及相关中文文档

    DWR 3.0的中文文档对于中国开发者来说是一个宝贵的资源,它可以帮助开发者快速理解和掌握如何使用DWR来构建Web应用。文档通常包括以下几个部分: 1. **介绍**:解释DWR的基本概念,其工作原理,以及为什么在项目中...

    DWR中文文档.pdfDWR中文文档.pdf

    这个“DWR中文文档.pdf”可能是对DWR的详细解释和使用指南,包括了DWR的基本概念、配置、API使用以及实际开发中的示例。 1. **DWR基本概念**:DWR的核心是远程方法调用(Remote Method Invocation,RMI),它允许...

    DWR中文文档 (DWR 2.0)

    ### DWR中文文档知识点概述 #### 一、DWR简介 **DWR(Direct Web Remoting)** 是一个开源的类库,旨在帮助开发者轻松构建包含AJAX技术的网站。其核心价值在于允许浏览器中的JavaScript代码能够直接调用运行在Web...

    DWR中文帮助文档(最好的DWR中文帮助文档)

    这个“DWR中文帮助文档”是为开发者提供详细指南和技术支持的资源,尤其对于中文使用者来说,它是一个极其宝贵的工具。 文档可能涵盖了以下几个核心知识点: 1. **DWR的基本概念**:DWR的核心是通过AJAX技术实现...

    DWR3.0官方中文入门教程以及dwr3.0jar

    DWR (Direct Web Remoting) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、异步通信,从而实现动态Web页面更新。DWR3.0是该技术的一个重要版本,提供了许多增强的功能和改进,使得开发人员能够...

    DWR中文文档v0.9PDF

    《DWR中文文档v0.9PDF》是一个关于Direct Web Remoting (DWR)技术的中文版指南,主要面向希望了解和使用DWR框架的开发者。DWR是一种JavaScript库,它允许Web应用程序与服务器端Java代码进行实时交互,实现AJAX...

    DWR的学习资料,DWR学习必备

    DWR中文文档.pdf:这是DWR的官方中文文档,详细解释了DWR的各个方面,包括安装、配置、API使用、安全性和最佳实践。对于初学者来说,这是一个宝贵的资源,可以帮助理解并熟练掌握DWR。 DWR开发培训.ppt、DWR.ppt:...

    dwr笔记 dwr自学资料

    DWR (Direct Web Remoting) 是一种开源Java技术,它允许Web应用程序在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用服务器端的Java方法,极大地简化了客户端和服务器端的数据交换。本笔记将...

    DWR2.0 中文手册

    **DWR 2.0 中文手册** DWR (Direct Web Remoting) 是一个开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java代码之间进行实时通信,类似于Ajax技术,但提供了更强大的功能。DWR 2.0版本是在DWR 1.x...

    dwr中文文档pdf格式

    这份DWR中文文档会详细介绍上述内容,包括安装步骤、配置详解、API使用示例、安全设置以及常见问题解答,帮助读者全面理解和掌握DWR技术。对于想要提升Web应用交互体验的开发者来说,阅读这份文档将大有裨益。

Global site tag (gtag.js) - Google Analytics