项目中:语音导览添加相关展品 字段:relactiveExhibitItem 长度 varchar2000

<div class="control-group">
<label class="control-label">相关展品:</label>
<div class="controls">
<input type="button" value="选择" id="itemIds" onclick="selectExhibitItem(this.id)" />
<div id="exhibitItemDiv" class="box" style="width:100%;font-size:14px;" >
<form:input type="hidden" id="itemIds_input" path="relactiveexhibititem" />
//由于实际字段值为:["90c720bc42b441328aae901a1f140bae","cafeab8fc5cd492698e9a5cbf39ebc87"],所以隐藏不显示             <form:input type="hidden" id="itemIds_name" path="relactiveexhibititemName" />
<ol id="itemIds_ol"></ol>
<script type="text/javascript">
// 相关作品的id集合
var itemIdList = ${hmlwxGuideVoices.relactiveexhibititem};
//
var itemNameList = '${hmlwxGuideVoices.relactiveexhibititemName}'.split(",");
if(itemIdList && itemIdList.length>0){

//为了动态的追加显示label
for(var i=0;i<itemIdList.length;i++){
var id=itemIdList[i];
var name = itemNameList[i];
var itemli = "<li id=itemIds_"+id+"><label style=\"max-width:100px;max-height:20px;_height:100px;border:0;padding:3px;\"/>"+name+"&nbsp;&nbsp;<a href=\"javascript:\" onclick=\"removeItems('itemIds_"+id+"','"+name+"');\">×</a></li>";
var $img = $(itemli);
$("#itemIds_ol").append($img);
}
}
</script>
</div>
</div>
</div>
//选择展品
function selectExhibitItem(id){
top.$.jBox.open("iframe:${ctx}/hmlwx/hmlwxExhibitItem/selectList","选择关联展品", 1000, 500, {
buttons:{"确定":"ok","关闭":"true"},
submit:function(v, h, f){
if (v=="ok"){
              //获取被选中的options 的标签
var chkItem = top.$("#jbox-iframe").contents().find('input:checkbox[name=chkItem]:checked');
var resIds="",resNames="";
var itemValue = $("#"+id+"_input").val();
alert("itemValue"+ itemValue);
var nameValue = $("#"+id+"_name").val();
alert("nameValue:"+ nameValue);
var isSelect = false;
chkItem.each(function (i) {
//alert($(this).val());
var idTemp = $(this).val();
alert("idTemp:"+ idTemp);
var nameTemp = $(this).parent().next().text();
alert("nameTemp:"+ nameTemp);
if(itemValue.indexOf(idTemp) == -1 ){
nameTemp = nameTemp.replace('\\s','').trim();
var itemli = "<li id=itemIds_"+idTemp+"><label style=\"max-width:100px;max-height:20px;_height:100px;border:0;padding:3px;\"/>"+nameTemp+"&nbsp;&nbsp;<a href=\"javascript:\" onclick=\"removeItems('itemIds_"+idTemp+"','"+nameTemp+"');\">×</a></li>";
var $img = $(itemli);
$("#itemIds_ol").append($img); if(itemValue =='[]' || itemValue=='')
itemValue = "[\""+idTemp+"\"]";
else
itemValue = itemValue.replace(",]",",\""+idTemp+"\"]").replace("]",",\""+idTemp+"\"]"); $("#"+id+"_input").val(itemValue);
if (nameValue == '' || (nameValue != '' && nameValue.indexOf(nameValue.length -1, nameValue.length)) == ",") {
nameValue += nameTemp;
} else {
nameValue += "," + nameTemp;
}
$("#"+id+"_name").val(nameValue);
resIds += "\"" + idTemp+"\",";
}
isSelect = true;
}); if(isSelect || (resIds!=null&&resIds.length>0)){
//转成json字符串
//$("#"+id+"_input").val("["+resIds.substr(0,resIds.length-1)+"]");
//$("#"+id+"_name").val(resNames.substr(0,resIds.length-1));
}else{
top.$.jBox.alert("未选择关联展品");
return false;
} }
}, loaded:function(h){
$(".jbox-content", top.document).css("overflow-y","hidden");
}
});
}

选择展品的jsp

<c:forEach items="${page.list}" var="hmlwxExhibitItem">
<tr>
<td><input type="checkbox" name="chkItem" value='${hmlwxExhibitItem.id}' class="select"/></td>
<td><a name="itemName" href="${ctx}/hmlwx/hmlwxExhibitItem/form?id=${hmlwxExhibitItem.id}&view=0">
${hmlwxExhibitItem.name}
</a></td>
<td>
${hmlwxExhibitItem.creationDate}
</td>
<td>
${hmlwxExhibitItem.spec}
</td>
<td>
${hmlwxExhibitItem.descr}
</td>
<td>
${hmlwxExhibitItem.createBy.name}
</td>
<td>
<fmt:formatDate value="${hmlwxExhibitItem.createDate}" pattern="yyyy-MM-dd"/>
</td>
</tr>
</c:forEach>

再看后台的controller中保存的方法、

@RequiresPermissions("hmlwx:hmlwxGuideVoices:view")
    @RequestMapping(value = "form")
    public String form(HmlwxGuideVoices hmlwxGuideVoices, Model model) {
        HmlwxGuideVoicesDTO hmlwxGuideVoicesDTO = new HmlwxGuideVoicesDTO();//扩展类 新增字段为关联作品的 名称集合字段         try {
            BeanUtils.copyProperties(hmlwxGuideVoicesDTO, hmlwxGuideVoices);
//对象的复制 把hmlwxGuideVoices 复制到 hmlwxGuideVoicesDTO 里
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        // 查找展品相关数据
//判断 关联作品字段中是否有值
        if (StringUtils.isNotEmpty(hmlwxGuideVoices.getRelactiveexhibititem())
                && !StringUtils.equals(hmlwxGuideVoices.getRelactiveexhibititem(), "[]")) {
//若有值先转化为json对象            
JSONArray json = JSONArray.fromObject(hmlwxGuideVoices.getRelactiveexhibititem());
            String name = "";
            if (json.size() > 0) {
//根据作品 id 找到 Name 并 拼接成一个字符转 以,分隔
                for (int i = 0; i < json.size(); i++) {
                    HmlwxExhibitItem hmlwxExhibitItem = hmlwxExhibitItemService.get(json.getString(i));
                    name += hmlwxExhibitItem.getName() + ",";
                }
            }
            if (StringUtils.isNotEmpty(name)) {
//切掉最后一个,
                name = name.substring(0, name.length() - 1);
            }
            hmlwxGuideVoicesDTO.setRelactiveexhibititemName(name);
        }
        // 查找展厅相关数据
        if (StringUtils.isNotEmpty(hmlwxGuideVoices.getExhibitionRoomId())
                && !StringUtils.equals(hmlwxGuideVoices.getExhibitionRoomId(), "[]")) {
            String id = hmlwxGuideVoices.getExhibitionRoomId().replaceAll("\"", "").replace("[", "").replace("]", "");
            // 只有一个展厅
            HmlwxExhibitionRoom hmlwxExhibitionRoom = hmlwxExhibitionRoomService.get(id);
            hmlwxGuideVoicesDTO.setExhibitionRoomName(hmlwxExhibitionRoom.getName());
        }         model.addAttribute("hmlwxGuideVoices", hmlwxGuideVoicesDTO);
        return "modules/hmlwx/hmlwxGuideVoicesForm";
  

实现添加相关资源的弹出ifreame 并实现多选框的更多相关文章

  1. 手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法

    手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法 最近碰到Android微信内置浏览H5页面,因为其中的文本输入框(input)放置在靠近页面的中下方,点击文本框以后,则输入框会被弹出的手机 ...

  2. VS2010添加类失败问题,弹出错误框,提示 CodeModel操作失败,无法访问标记数据库

    我在使用VS2010添加类的时候,会弹出一个错误框,提示 CodeModel操作失败,可以无法访问标记数据库 英文版是 CodeModel operation failed,Possibly cann ...

  3. android 长按弹出菜单,复制,粘贴,全选

    <!-- 定义基础布局LinearLayout --> <LinearLayout xmlns:android="http://schemas.android.com/ap ...

  4. WPF弹出带蒙板的消息框

    效果图 思路 拿到父级窗体的内容,放入一个容器里,再在容器里放入一个半透明层.将整个容器赋给父级窗体的内容. 关闭时反向操作. 代码 消息窗弹出时 /// <summary> /// 弹出 ...

  5. javascript弹出带文字信息的提示框效果

    // position of the tooltip relative to the mouse in pixel // <html><head><meta charse ...

  6. ViewController添加子控制器 并且弹出

    /** *  初始化子控制器 */ - (void)setupChildVcs { for (int i = 0; i<6; i++) { UIViewController *vc = [[UI ...

  7. js手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法

    if(window.navigator.userAgent.indexOf('Android') > -1 || window.navigator.userAgent.indexOf('Adr' ...

  8. myeclipse经常弹出Subversion Native Library Not Available框解决办法

    两种解决方案:(1)在myeclipse中选择 "Windows" -> Perferences. 然后通过左上方的筛选,选出svn设置菜单,点解左侧的"SVN&q ...

  9. 安卓弹出对话框——Alertdialog

    在Android开发当中,在界面上弹出一个Dialog对话框使我们经常需要做的,本篇随笔将详细的讲解Dialog对话框这个概念,包括定义不同样式的对话框. 一.Dialog 我们首先来看看androi ...

随机推荐

  1. Java并发编程的艺术笔记(四)——ThreadLocal的使用

    ThreadLocal,即线程变量,是一个以ThreadLocal对象为键.任意对象为值的存储结构.这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上 ...

  2. 上传本地文件到linux

    Linux 命令行上传文件 Linux服务器,硬盘坏了,更换硬盘后,重装了好像是Foreda v22的操作系统,我在/var/www/html/目录下新建了我的个人文件夹 kma,然后我在此kma文件 ...

  3. 【转】diamond专题(三)—— diamond架构

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  4. python3笔记四:if语句

    一:学习内容 if语句 if-else语句 if-elif-else语句 if语句练习 二:if语句 1. 格式 if 表达式:    语句 2.逻辑 当程序执行到if语句时,首先计算表达式的值如果表 ...

  5. Docker安装Zookeeper并进行操作

    Docker安装Zookeeper 下载Zookeeper镜像docker pull zookeeper1启动容器并添加映射docker run --privileged=true -d --name ...

  6. SELECT list is not in GROUP BY clause and contains nonaggregated

    安装了mysql5.7,用group by 查询时抛出如下异常 SQLSTATE[42000]: Syntax error or access violation: 1055 Expression # ...

  7. jenkins部署java项目

    #########################################jenkins部署#################################3 一.jenkins是什么? J ...

  8. 搭建jenkins集群node结点

    配置结点 首先,需要在jenkins的系统设置中新增一个结点 系统管理 -> 节点管理 -> New Node 配置Remote root directory最好和主jenkins的路径一 ...

  9. LaTex&&markdown

    LaTeX在线编辑器:传送门 LaTeX常用公式整理(转载):传送门 Markdown洛谷教程(转载):传送门 Markdown基本语法(转载):传送门 Markdown数学符号和语法(转载):传送门 ...

  10. 浏览器端-W3School-HTML:HTML DOM Style 对象

    ylbtech-浏览器端-W3School-HTML:HTML DOM Style 对象 1.返回顶部 1. HTML DOM Style 对象 Style 对象 Style 对象代表一个单独的样式声 ...