首先下载最新的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(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器...通过深入学习这份DWR中文文档,开发者不仅可以掌握DWR的基本用法,还能了解到如何在实际项目中有效利用DWR提升Web应用的性能和用户体验。
pinyin4j则是一个Java库,专门用于处理汉字和拼音之间的转换。在中文环境中,特别是在搜索引擎和自动匹配功能中,将汉字转换为拼音是必不可少的步骤。pinyin4j能提供精准的汉字转拼音服务,包括全拼和简拼,还能处理...
这份文档对于理解DWR的工作原理和使用方法至关重要,特别是对于中文用户来说。DWR2.0文档可能会涵盖以下几个方面: - **安装与配置**:介绍如何将DWR添加到现有项目中,包括引入jar文件、配置web.xml和dwr.xml文件...
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库的中文参考文档,详细列出了各种接口、类和方法,是开发者查找和理解DWR功能的重要参考资料。API文档通常会包括每个类的描述、方法签名、参数说明和返回值,帮助开发者快速定位并使用所需的功能...
### DWR2.0中文文档知识点解析 #### DWR概览 DWR(Direct Web Remoting)是一种开源框架,用于简化Ajax应用的开发过程。它允许JavaScript直接调用服务器端的Java方法,从而实现了客户端与服务器端之间的无缝交互。...
- **DWR中文文档.pdf**:DWR的中文官方文档,提供了详细的技术指南和API参考。 - **jstl讲义.ppt**:可能是关于JSTL的教程材料,帮助理解JSTL的使用和功能。 - **dwr使用步骤.txt**:可能包含了DWR的配置和使用步骤...
这个“DWR中文教程(外带DWR包)”为初学者提供了一个全面的入门指南,帮助理解并掌握DWR的基本概念和实际应用。 首先,我们来了解一下DWR的核心功能。DWR允许前端JavaScript代码直接调用后端服务器的Java方法,就...
DWR 3.0的中文文档对于中国开发者来说是一个宝贵的资源,它可以帮助开发者快速理解和掌握如何使用DWR来构建Web应用。文档通常包括以下几个部分: 1. **介绍**:解释DWR的基本概念,其工作原理,以及为什么在项目中...
这个“DWR中文文档.pdf”可能是对DWR的详细解释和使用指南,包括了DWR的基本概念、配置、API使用以及实际开发中的示例。 1. **DWR基本概念**:DWR的核心是远程方法调用(Remote Method Invocation,RMI),它允许...
### DWR中文文档知识点概述 #### 一、DWR简介 **DWR(Direct Web Remoting)** 是一个开源的类库,旨在帮助开发者轻松构建包含AJAX技术的网站。其核心价值在于允许浏览器中的JavaScript代码能够直接调用运行在Web...
这个“DWR中文帮助文档”是为开发者提供详细指南和技术支持的资源,尤其对于中文使用者来说,它是一个极其宝贵的工具。 文档可能涵盖了以下几个核心知识点: 1. **DWR的基本概念**:DWR的核心是通过AJAX技术实现...
DWR (Direct Web Remoting) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、异步通信,从而实现动态Web页面更新。DWR3.0是该技术的一个重要版本,提供了许多增强的功能和改进,使得开发人员能够...
《DWR中文文档v0.9PDF》是一个关于Direct Web Remoting (DWR)技术的中文版指南,主要面向希望了解和使用DWR框架的开发者。DWR是一种JavaScript库,它允许Web应用程序与服务器端Java代码进行实时交互,实现AJAX...
DWR中文文档.pdf:这是DWR的官方中文文档,详细解释了DWR的各个方面,包括安装、配置、API使用、安全性和最佳实践。对于初学者来说,这是一个宝贵的资源,可以帮助理解并熟练掌握DWR。 DWR开发培训.ppt、DWR.ppt:...
DWR (Direct Web Remoting) 是一种开源Java技术,它允许Web应用程序在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用服务器端的Java方法,极大地简化了客户端和服务器端的数据交换。本笔记将...
**DWR 2.0 中文手册** DWR (Direct Web Remoting) 是一个开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java代码之间进行实时通信,类似于Ajax技术,但提供了更强大的功能。DWR 2.0版本是在DWR 1.x...
这份DWR中文文档会详细介绍上述内容,包括安装步骤、配置详解、API使用示例、安全设置以及常见问题解答,帮助读者全面理解和掌握DWR技术。对于想要提升Web应用交互体验的开发者来说,阅读这份文档将大有裨益。