项目中:语音导览添加相关展品 字段: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. 「TJOI2019」甲苯先生的滚榜

    题目链接 问题分析 参照数据范围,我们需要一个能够在\(O(n\log n)\)复杂度内维护有序数列的数据结构.那么平衡树是很好的选择.参考程序中使用带旋Treap. 参考程序 #pragma GCC ...

  2. kali VMWOOLS的安装

    别人的教程 https://jingyan.baidu.com/article/3ea51489992f1f52e71bba45.html

  3. 剑指offer-Q60 n个骰子的点数

    python版本代码 g_maxValue = 6 # 单个骰子最大的点数 def PrintProbability(number): ''' :param number: 骰子的个数 :return ...

  4. 分布式-信息方式-ActiveMQ的Destination高级特性3

    虚拟destination用来创建逻辑destination,客户端可以通过它来生产和消费消息,它会把消息映射到物理destination. ActiveMQ支持2种方式: 1:虚拟主题(Virtua ...

  5. C++入门经典-例4.6-使用重载函数

    1:代码如下: // 4.6.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...

  6. ASP.NET图片防盗链(使用一般处理程序)

    <img src="你的一般处理程序的地址"/> context.Response.ContentType = "image/jpeg"; Uri ...

  7. 查询redis中没有设置过期时间的key

    #!/bin/sh ## 该脚本用来查询redis集群中,哪些key是没有设置过期时间,对应只需要修改redis的其中一个实例的 host和port ## 脚本会自动识别出该集群的所有实例,并查出对应 ...

  8. Appium测试框架

    介绍 读作['æpɪəm],是selenium的扩展,同样基于WebDriver协议,详见:http://appium.io/. 关于WebDriver终端操作,详见:https://www.w3.o ...

  9. AOP 代理类的创建

    AOP 代理类的创建 入口:AnnotationAwareAspectJAutoProxyCreator#postProcessAfterInitialization 和 AnnotationAwar ...

  10. 字典的常见操作<一>

    <1>修改元素 字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改 Demo from pip._vendor.distlib.compat import raw_input ...