Jquery autocomplete在struts2中的使用及体会(json plugin)

实现两个autocompleter标签内容的关联(Struts2-AJAX)        通过指定autocompleter标签的formld属性,可以使两个<s:autocompleter>标签关联起来进行联动。如在某些网站的注册系统中,可以选择注册用户所在的省和所有的市,当用户选择某一个省时,在市列表框中就会列出该省所有的市。这个功能使用autocompleter标签非常容易实现。        实现该功能的基木原理是将显示省的autocompleter标... 阅读详情

     struts2项目中需要在页面上使用jquery的autocomplete,在网上查到可以用struts2的json plugin,就此麻烦开始。先下载了json0.34,老是提示出错,找不到某某方法,一看说是版本问题,我用的是struts2.1.6,按json plugin的网站说的,0.34应该支持struts2.1.x的,却不能支持。只好下载0.33来用,还不错,这次没有闹腾,顺利调通。

     接下来的问题是jquery的autocomplete接收的字符串不是标准的json格式,而是string|string|string/n(换行用于区分每组值)。一开始想修改autocomplete的脚本,但看上去很不方便,因为现在的autocomplete是支持多个值的,例如取user值,可以附带user fullname,以及email等其他值。组合的格式是,userId|fullname|email.../n,如果想要再附加多个值都可以。而json格式是key-value格式的,这个key是不一定的,对于autocomplete来说,就要和具体逻辑绑定在一起。这样修改是不划算的。

     json plugin本身显得比较山寨,文档上显示plugin停止更新了,由struts2-json-plugin.jar在struts2.1.7包含发布,但并没有对新的jar如何使用没有提供文档,不知道是不是和原来的一样。另外,从json plugin生成json的方式看,感觉很耗资源,要产生一个有实用价值的的json字符串,需要有对应名字的set方法,外带有list的参数,而list中要包含map的key-value对象,一个获取名字的功能,一次取100条记录的话,资源消耗十分厉害。

     此时,考虑到ajax的用法应当是朝着开放而自由的方向,而并非要受到各种限制。例如,日后如果发起xhr请求之后,需要服务器返回json,xml或者自己定制格式的结果的话,目前的方案是无法满足要求的。所以决定再去struts2的网站上查一查,看看有无其他支持ajax的方法,一查果然有。具体内容如下:

 

package actions;

import java.io.InputStream;
import java.io.StringBufferInputStream;
import com.opensymphony.xwork2.ActionSupport;

public class TextResult extends ActionSupport {
      private InputStream inputStream;
      public InputStream getInputStream() {
          return inputStream;
      }

 

      public String execute() throws Exception {
          inputStream = new StringBufferInputStream("Hello World! This is a text string response from a Struts 2 Action.");

          此处的StringBufferInputStream从jdk1.1开始就淘汰了,用ByteArrayInputStream代替,将字符串转换为
byte[]之后new ByteArrayInputStream() 就可以了。在此处可以自己任意组合要返回的字符串,xml,json或者是定制格式。

          return SUCCESS;
      }
}

<action name="text-result" class="actions.TextResult">
    <result type="stream">
        <param name="contentType">text/html</param>
        <param name="inputName">inputStream</param>
    </result>
</action>
用上面的代码,很顺利的调通代码,也无需修改autocomplete的脚本。这样,也为日后更大范围在项目中使用ajax找到一个稳定的途径。
     通过上面的经历,明显感觉到那些所谓的插件,例如对dojo,jquery等知名ajax的包装,很明显是画蛇添足,没啥前途的。这方面还是
直接使用dojo.js或是jquery.js来的好,想用任何流行的widget都可以,又何必去等这个所谓的插件呢。这个和.net的ajax社区开发的ajax
lib方向上有点像,过度包装后,失去了其灵活性,修改和维护的代价过大,不值得。也令人不放心。
WordPress主题开发实战:从零开始手把手教你创建自定义主题(含常用函数大全) 本文是一份WordPress主题开发实战指南,从零开始手把手教你创建自定义主题。内容涵盖主题核心文件结构、模板层级与循环机制、函数与钩子的运用,并附有详细的常用函数大全,帮助开发者彻底掌握主题开发的核心技能,实现从使用者到创造者的转变。 阅读详情

相关推荐

Pixel 6 Pro刷Android 13变砖自救指南:fastboot全分区擦除与手动刷入教程

本文提供了一份详细的Pixel 6 Pro在Android 13升级过程中变砖后的自救指南。针对因super分区锁死或动态分区异常导致的无法启动问题,文章核心介绍了通过fastboot命令手动擦除关键分区并逐一刷入官方镜像的完整救砖流程,帮助用户实现系统重建与恢复。

weixin_29208327的博客 369

Struts2+jQuery_autoComplete.js实现自动填充的完整示例

js代码:         $(document).ready(function() { $("#autocomplete").autocomplete("autoComplete.action", {   minChars : 1,   max : 15,   matchContains: true,//包含即可自动填充,无论是一个单字母还是一个字符串都可以匹配   mustMa

地平线的专栏 939

静止无功补偿SVG的基本控制原理

上图是自励单变量控制框图,基本控制方式为,采集计算得到负载无功电流和SVG输出的无功电流的差值,经过PI调节作为功率角δ和固定的调制深度λ和调制波,经过PWM调制形成开关信号驱动SVG的功率电路。该控制方式使保持调制深度λ(即SVG电压的幅度)不变,通过调整δ来调整直流电压和无功,跟踪输出无功功率,直流电压就会大幅度随动,无功相应速度较慢。SVG通常有他励方式和自励方式,他励方式需要提供外部的直流电源,自励方式通过电网输出有功功率至SVG建立SVG的直流电压。δ为Us和Uc之间的相角差。

weixin_42668920的博客 1987

jQueryAutocomplete+struts2 实现文本框自动完成

最近做项目涉及文本框输入自动完成的功能,类似百度和淘宝的搜索框,查了许多资料,搞了许久,还是觉得jQuery的Autocomplete最快速、最易理解,在此记录一下。

qq_37146977的博客 375

Python大数据舆情分析系统开发实战

舆情监测系统是大数据分析的重要应用场景,通过自然语言处理(NLP)技术解析社交媒体文本情感倾向。基于Python技术栈的解决方案整合了Scrapy爬虫框架进行数据采集,PySpark处理海量文本数据,结合SnowNLP和Jieba实现中文语义分析。系统采用微服务架构设计,包含数据采集层、处理层、存储层和应用层,通过情感分析优化和实时热点检测算法提升监测准确率。典型应用包括企业品牌监测、公共事件预警等场景,开发过程中需特别注意数据合规性和分布式集群的性能调优。

weixin_34408624的博客 386

Ubuntu20.04实时内核补丁PREEMPT_RT编译与安装全流程解析

本文详细解析了在Ubuntu20.04系统上编译与安装实时内核补丁PREEMPT_RT的全流程。从内核与补丁版本匹配、编译环境准备,到内核配置、编译排错,再到最终安装、验证与进阶优化,提供了手把手的实战指南,旨在帮助机器人、工业控制等对实时性有苛刻要求的开发者构建低延迟、高确定性的Linux系统。

weixin_29213827的博客 185

学习Struts2的autocompleter使用

Struts2的ajax主题在使用autocompleter 做联动效果如下所示时:   &lt;form id="selectForm"&gt;  请选择您喜欢的作者:&lt;br&gt;  &lt;s:autocompleter  name="author"  list="{'auth1','auth2' , 'auth3'}"   value="auth1" notifyTopi

456 217

水文模型大合集---SWAT模型、VIC模型、HEC-HMS模型、HSPF模型、FVCOM模型、Delft3D模型、HYPE模型.......

1.1 面源污染概要1.2 SWAT模型及应用1.3 SWAT模型原理1.4 SWAT模型输入文件1.5 ArcGIS与SWAT关系。

jwwkyjspt的博客 4357

struts2 autocompleter标签 动态下拉菜单

struts2 autocompleter标签 动态下拉菜单

ArcticFoxHan的专栏 2014

Python 爬虫实战:爬取去哪儿网酒店评价,提取住宿体验关键词

本文介绍了基于去哪儿网酒店评价数据的爬取与分析方法。首先通过分析网页结构和数据加载机制,定位到评价数据的JSON接口及关键参数。然后使用Python搭建爬虫环境,实现多页评价数据的批量采集与存储,并通过反爬策略确保数据获取的稳定性。在文本分析环节,采用jieba分词和TF-IDF算法提取高频关键词,结合词云可视化展示用户关注点。分析结果显示位置、服务、卫生是核心关注维度,同时识别出好评与差评的关键驱动因素。该方法为酒店服务优化和消费者决策提供了数据支持,并可通过扩展实现更深入的情感分析和竞品对比。

2503_91057718的博客 998

【CASS精品教程】006:CASS7.1 道路设计参数文件打开无响应,提示roadpara解决办法,权威解决办法汇总

在用CASS7.1 软件进行断面法土方量计算,在生成断面图后,需要进行道路设计参数文件的设计,打开断面设计参数文件的时候,无响应,提示roadpara,如下所示: 道路设计参数文件 解决办法有三种 第一种方法:Win+R (1)64位系统:输入regsvr32 C:\Windows\SysWOW64\CellCtrl5.ocx,回车 (2)32位系统输入regsvr32 C:...

智慧空间实验室 1万+

struts2中autocompleter标签使用

autocompleter标题用于从服务器读取一组数据,并以下拉列表显示,实现自动补全效果 demo如下 Action package com.struts2.ajax; import java.util.ArrayList; import java.util.List; import com.opensymphony.xwork2.ActionSupport; public clas

1350

金融监管压力测试场景生成

压力测试是一种评估金融资产或机构在极端市场条件下的表现和风险承受能力的方法。它通过模拟各种不利的市场情景,测试金融机构在这些情景下的财务状况和运营能力。压力测试的作用在于帮助金融机构识别潜在风险,评估应对策略,并制定应急预案。总结压力测试场景生成系统的开发过程和实现效果,强调其在金融监管中的重要性和应用价值。随着金融市场的发展,实时压力测试将越来越重要。未来,压力测试需要更加注重实时性和动态性,及时反映市场的变化。本文详细介绍了金融监管压力测试的重要性、核心概念、算法原理、系统架构以及实战案例。

AI天才研究院 1207

Struts2+JQuery+Json及JQuery相关插件的例子

Struts2+JQuery+Json及JQuery相关插件的例子   注意事项:   1.开发时,应将工程及相应的页面数据库编码均设为:utf8解决乱码问题;   2.当前开发版本为struts2.1.8,不同的struts2版本会有不同的jar包需要引入,具体见readme.txt   3.autocomplete插件不是很完善,尚不能处理json数据;弹出层框架只针对图片(可修...

ぁ颩ぁ囩ぁ 156

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

struts2配置文件返回值

1、action中有return,则在struts2.xml对应的action中,必须有 如果代码中返回值是void,配置文件中允许只有一个 标签,没有result 2、对于ajax结合action使用时,返回值为void类型,返回的数据使用response.getWriter().write(data),返回到ajax中。          public void getZon

我是谁 3260

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jquery AutoComplete 插件与struts2集成

http://blog.youkuaiyun.com/laigood12345/article/details/6401742

不断出发,永无抵达! 712

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

struts +JQuery AutoComplete 自动补齐

package com.bpsoft.servlet; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; ...

kevin_wangwei的专栏 211

jQuery.Autocomplete 与struts2的整合

jQuery.Autocomplete 与struts2的整合 [img]http://dl.iteye.com/upload/attachment/0074/5314/169371ab-3686-3a75-8987-7f86a78a0f63.jpg[/img] 需要做一个text的自动提示功能,于是翻翻jquery 的书,看了一个叫做autocomplete的插件,决定试一试怎么使用...

KingDino的博客 239

HtmlUnit使用体会

    HtmlUnit测试工具的推出,创意非常好。是一款给java开发用的browser。说它是browser,其实它是对html建模并且提供API来访问页面,点击链接等等的java类库。    这样的测试工具有这样几个优点: 运行起来没有界面,速度非常快。 由于是java类库,有无限扩展的可能,可以构造各种功能强大的工具。包括本地化测试,多种数据源输入数据。

Eddyx的专栏 1万+

Cookie又见Cookie-使用HtmlUnit/HttpClient中遇到的问题

    想试试HtmlUnit在测试网页上的表现,访问一个网页跳转到下一个网页之后,总是返回在server上找不到的页面,用IE访问就是好的。 另外有个奇怪的现象,在IE访问网页之后,再run写好的HtmlUnit代码就能顺利通过。关了IE之后,10分钟左右,代码都能通过。超过这个时间之后,就怎么折腾也通不过。    根据这个现象分析,感觉很象是cookie在捣鬼。cookie有效的时候,Html

Eddyx的专栏 5845

CAS client (.net/java) 配置备忘

这几天开始配置CAS Client,包括.net的和java client。走了一些弯路,记录下来,以便各位朋友节省点时间。1。.net client,官方网站上提供的还是个半成品,下载整合到项目中之后,总是循环请求,不能够正常工作。只能到网上再找,http://www.middleware.vt.edu/doku.php?id=middleware:cas,这个站点提供的版本是可用的,简单配置后,另外再将需要用到https的部分,继承System.Net.ICertificatePolicy类,对Chec

Eddyx的专栏 4311

tomcat session共享的尝试 (CAS, memcached, HA)

     不久之前, 为项目搭建了一个tomcat集群的环境, 具体如下: nginx+tomcat+memcached+memcached client forjava 主要是通过tomcat的filter将session共享到memcahced server中. 这个方案对于自己做的web application来说, 运行良好. 但其中的CAS服务器是单点的, 于是近两个星期打算将CAS也集群化. CAS的官网上有集群方案, 就是通过tomcat自身的session复制来进行. 一开始觉得这样配置并不

Eddyx的专栏 3992
上一篇: 嘿嘿,又见JFreeChart(Struts2中使用的几点注意)
下一篇: Ehcache学习总结
eddyx
博客等级 码龄22年 14粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值