<c:if>标签问题,页面不显示true的内容

我在jsp页面定义了一个orgId的变量

var orgId = $('.gwBjk').val();

然后我在同一个页面foreach一个对象,里面套用c if ,

   <c:forEach items="${orJunior}" var="junior">

                    <c:if test="${junior.id == orgId}">

                    <input type="text" name="id" value="${junior.id}"/>

                    </c:if>

 </c:forEach>

但是这个input框不在页面显示....
求大神告知原因

test里该怎么写?

3个回答

c:if 标签里面不能用js变量
可以通过ajax,将orJunior以json格式数据返回
success:function(data){
for(var i = 0;i if(data.id ==orgId){
s = s+ "
}
}
$(dom).html(s);
}

qq_36498920
qq_36498920 嗯..好的..非常感谢
3 年多之前 回复

var orgId = $('.gwBjk').val();
这个代码是js,肯定c:if里面不能使用了

qq_36498920
qq_36498920 那该怎么做才可以去比较?
3 年多之前 回复

你这样根本就不可以!js的变量在c标签中怎么可能取到??你的test表达式永远是false,不信你可以对其取反操作一下,就打印出来了,你这个表达式是什么意思
呢?我给你解释下,假如当前遍历的id值是1那么就是1=="orgId"--->false,如果是2就是2=="orgId"--->false,不论你的js中orgId是什么值,在表达式中它
就是字符串"orgId",ok?

zhangpan_soft
zhangpan_soft 回复qq_36498920: 欢迎关注!求粉丝!汗!
大约 3 年之前 回复
qq_36498920
qq_36498920 回复zhangpan_soft: 非常感谢
3 年多之前 回复
zhangpan_soft
zhangpan_soft 回复qq_36498920: 你可以修改后台代码,让其返回的是json串,然后再js中解析,用JQuery的循环,
3 年多之前 回复
zhangpan_soft
zhangpan_soft 回复qq_36498920: 如果非要比较的话,我可以这么做一个假设,既然js和c标签的变量不能通用,那么,如果是c标签和c标签的呢?或者是js和js的呢?所以,解决办法就是,让其是同一种类型!通常这种操作
3 年多之前 回复
qq_36498920
qq_36498920 是不是直接在js方法里判断就好了?
3 年多之前 回复
qq_36498920
qq_36498920 那该怎么做才可以去比较?
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jsp页面中标签id,拼接,跪求……
``` $.post("jiance.action","yname="+name,function(result){ var a=id+"span"; if($.trim(result)=="true"){ alert(a); $("").html("没有违法词!"); }else{ $("#a").html("包含违法词!"); } }); } </script> </head> <c:if test="${list==null}"> <c:redirect url="findallyuju" ></c:redirect> </c:if> <div class="main"> <div class="title">检测语句中是否包含违法关键词&gt;&gt;</div> <div class="content"> <table class="list" border="1px"> <tr> <td align="center">语句编号</td> <td align="center">语句内容</td> <td>点击检测</td> <td align="center">检测结果</td> </tr> <c:forEach items="${list}" var="y"> <tr> <td align="center">${y.yid}</td> <td >${y.yname}</td> <td><input name="${y.yname }" id="${y.yid}" type="button" value="点击检测" onclick="jiance(name,id)"></td> <td><span id="${y.yid }span"></span></td> <td><span id="4span">${y.yid }span</span></td> </tr> </c:forEach> </table> ``` 代码如上,就是将返回的结果在指定id的span标签中输出。自己搞了好久,不显示……跪求大神赐教。万分感谢,在线等。
页面元素显示不完整
请先看截图,我第一次遇到这种问题,当然,不是代码标签未写完整的,代码所有的TD,TR都是包含完整且检查了很多遍。 初步认为是字符编码集的问题,但是找不到解决方法。。 有没有遇到过相似情况的同仁? 请赐教 下面贴上这个页面的相应代码: [code="java"] <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>main</title><%@include file="../includedMain.jspf"%> <script language="JavaScript" type="text/javascript"> $(document).ready(function() { $.datepicker.setDefaults( $.datepicker.regional[ "zh-CN" ] ); $( "#choose-birthday" ).datepicker( {changeMonth: true, changeYear : true, yearRange : 'c-100:c' }); $( "#choose-come-day" ).datepicker( {changeMonth: true, changeYear : true, yearRange : 'c-100:c' }); var positionName = $("#pozitionSelect").find("option:selected").attr('name'); var teamTD = $("#ownTeamLabel"); if(teamTD!=null) { if(positionName == 'staffVO.salesman') { $("#ownTeamSelector").show(); $(teamTD).show(); } } }); </script> </head> <body class="ContentBody"> <form id="staff_update_form" class="validate" action="<s:url value='/staff/staffUpdate.action'/>" method="post" enctype="multipart/form-data" name="form" target="mainFrame"><input type="hidden" name="staffVO.version" value="<s:property value='staffVO.version'/>" /> <div class="MainDiv"> <table width="99%" border="0" cellpadding="0" cellspacing="0" class="CContent"> <tr> <th class="tablestyle_title">员工信息修改</th> </tr> <tr> <td class="CPanel"> <table border="0" cellpadding="0" cellspacing="0" class="c3"> <tr> <td width="100%"> <fieldset class="c4"><legend>员工信息</legend> <input type="hidden" name='staffVO.id' value="<s:property value='staffVO.id'/>" /> <input id="sexvalue" type="hidden" name="" /> <input type="hidden" id="pozitionValue" name="" value="" /> <input type="hidden" id="teamValue" name="" value="" /> <table border="0" cellpadding="2" cellspacing="1" class="c3"> <tr> <td nowrap="nowrap" align="right">真实姓名:</td> <td><input class="text requireValid c1" name='staffVO.staffName' value="<s:property value='staffVO.staffName'/>" /> <span class="errorMsg">*</span></td> <td align="right">性别:</td> <td><select name="sex"> <option <s:if test="%{#staffVO.staffName =='male'}">selected="selected"</s:if> onchange="injectIntoForm('sexvalue','staffVO.sex','male');">男</option> <option <s:if test="%{#staffVO.staffName =='famale'}">selected="selected"</s:if> onchange="injectIntoForm('sexvalue','staffVO.sex','famale');">女</option> </select></td> <input id="sexvalue" type="hidden" name="" /> </tr> <tr> <td align="right">出生日期:</td> <td><input id="choose-birthday" class="text c1" readonly="true" name='staffVO.birthDayStr' value="<s:property value='staffVO.birthDayStr'/>" /></td> <td align="right">身份证号码:</td> <td><input class="text requireValid c1" name='staffVO.idNumber' value="<s:property value='staffVO.idNumber'/>" /> <span class="errorMsg">*</span></td> </tr> <tr> <td align="right">电子邮箱:</td> <td><input class="text c1" name='staffVO.email' value="<s:property value='staffVO.email'/>" /></td> <td align="right">电话号码:</td> <td><input class="text requireValid c1" name='staffVO.phoneNumber' value="<s:property value='staffVO.phoneNumber'/>" /> <span class="errorMsg">*</span></td> </tr> <tr> <td align="right">地址:</td> <td><input name="staffVO.address" class="text requireValid c1" type="text" value="<s:property value='staffVO.address'/>" /> <span class="errorMsg">*</span></td> <td align="right">职位:</td> <td><select id="pozitionSelect" name="pozition" onchange="setPositionValue('pozitionSelect','pozitionValue');"> <option name="staffVO.admin" <s:if test="#request.staffVO.hasAdminRole()">selected="selected"</s:if>><s:text name="ADMIN" /></option> <option name="staffVO.manager" <s:if test="#request.staffVO.hasManagerRole()">selected="selected"</s:if>><s:text name="MANAGER" /></option> <option name="staffVO.assistManager" <s:if test="#request.staffVO.hasAssistManagerRole()">selected="selected"</s:if>><s:text name="ASSISTMANAGER" /></option> <option name="staffVO.teamLeader" <s:if test="#request.staffVO.hasTeamLeaderRole()">selected="selected"</s:if>><s:text name="TEAMLEADER" /></option> <option name="staffVO.salesman" <s:if test="#request.staffVO.hasSalesmanRole()">selected="selected"</s:if>><s:text name="SALESMAN" /></option> </select></td> </tr> <tr> <td align="right">入职时间:</td> <td><input id="choose-come-day" class="text c1" readonly="true" name='staffVO.comeDayStr' value="<s:property value='staffVO.comeDayStr'/>" /></td> <td id="ownTeamLabel" align="right" class="c2" style="display: none;">所属团队</td> <td id="ownTeamSelector" class="c2" style="display: none;"><select name="staffVO.team.id"> <s:iterator value="teamList" id="teamList"> <option value="<s:property value="id"/>" <s:if test="#request.staffVO.team.teamName == #teamList.teamName">selected="selected"</s:if>><s:property value="teamName" /></option> </s:iterator> </select></td> </tr> <tr> <td align="right">描述:</td> <td colspan="3"><textarea name="staffVO.info" cols="100" rows="8"><s:property value="staffVO.info" /></textarea></td> </tr> </table> <br /> </fieldset> </td> </tr> </table> </td> </tr> <tr> <td colspan="2" align="center" height="50px"> <input type="button" name="Submit" value="保存" class="button submit" /> <input type="button" name="Submit2" value="返回" class='button' onclick="window.history.go(-1);" /></td> </tr> </table> </div> </form> </body> </html> [/code]
echarts地图的问题。地图刷新点击事件重复
``` var myChart = echarts.init(document.getElementById('map')); var option = { title: { text : '重庆市脱贫地区分布总览', subtext : '当前区域信息', top:'20', textStyle: { fontSize: 18, color: '#333' // 主标题文字颜色 } }, series: [ { name: '数据名称', type: 'map', mapType: '重庆', top:'65', zoom:1.1, selectedMode : 'single', label: { normal: { show: true,//显示省份标签 textStyle:{color:"#fbfdfe"}//省份标签字体颜色 }, emphasis: {//对应的鼠标悬浮效果 show: true, textStyle:{color:"#323232"} } }, itemStyle: { normal: { borderWidth: .5,//区域边框宽度 borderColor: '#0550c3',//区域边框颜色 areaColor:"#4ea397",//区域颜色 }, emphasis: { borderWidth: .5, borderColor: '#4b0082', areaColor:"#ece39e", } }, }] }; myChart.setOption(option); myChart.on('click', function (params) {//点击事件 if (params.componentType === 'series') { var provinceName =params.name; $('#box').css('display','block'); $("#box-title").html(provinceName); } }); ``` 在一个div中放的是echarts地图,有点击事件,页面会每隔一段时间生成一个新的底图,但是在点击的时候会把以前的点击事件里面的弹框内容给弹出。会反复叠加弹出很多框。。问大神怎么解决
IMG标签加载FTP的图片,在chorme下正常,IE下不显示
子页面 ``` @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <img id="pic" src="ftp://192.168.1.10/Pictures/201684/20160804090110-749-(%C0%B6%BE%A9YM1Z04)5-%C8%AB%BE%B0%CD%BC.jpg" style="width:500px;height:500px"/></div> </body> </html> ``` Home页 ``` @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src="~/Scripts/jquery-1.8.2.min.js"></script> <script src="~/Scripts/jquery.easyui.min.js"></script> <script src="~/Scripts/easyui-lang-zh_CN.js"></script> <script src="~/Scripts/common.js"></script> <link href="~/Content/themes/default/easyui.css" rel="stylesheet" /> <link href="~/Content/themes/icon.css" rel="stylesheet" /> <script type="text/javascript"> function addTab(title, url) { if ($('#tabs').tabs('exists', title)) { $('#tabs').tabs('select', title); } else { var content = '<iframe scrolling="no" frameborder="0" src="' + url + '" style="width:100%;height:99%"></iframe>'; $('#tabs').tabs('add', { title: title, content: content, closable: true }); } } </script> </head> <body> <div> <a href="javascript:void(0)" class="easyui-linkbutton" onclick="addTab('新标签','/Default1/Index')"> 添加</a> <div id="tabs" class="easyui-tabs" style="width:500px;height:500px"> </div> </div> </body> </html> ``` 在Chrome下,子页面运行没问题,home页tabs加载子页面图片也没问题 在IE下,子页面运行图片显示,home页tabs加载子页面图片不显示错误
使用jquery-powerfloat.js来实现的悬浮层效果在IE7或者IE8下运行,导致页面卡住
一、问题描述 在最近开发的asp.net项目使用jquery-powerfloat.js来实现网页上的悬浮层效果,当鼠标悬浮在网页的某个字符串上时显示悬浮层,移出该字符串不显示悬浮层。但是在IE7或者IE8浏览器上运行时,会导致页面卡住。 ![IE7下页面卡住截图](https://img-ask.csdn.net/upload/201911/12/1573549904_306764.png) 二、代码片段 1、主页面前端代码 ``` <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainForm.aspx.cs" Inherits="powerFloat.MainForm" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>主界面</title> </head> <body> <form id="mainform" runat="server"> <div runat="server" id="addDiv"> </div> </form> </body> </html> ``` 2、主页面的后台代码 ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace powerFloat { public partial class MainForm : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if(!Page.IsCallback) { InitData(); } } private void InitData() { Control ctl = this.LoadControl("AddWebUserControl.ascx"); ctl.ID = "Test"; addDiv.Controls.Add(ctl); addDiv.Controls.Add(new LiteralControl("<br/>")); } } } ``` 3、悬浮层前端代码 ``` <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AddWebUserControl.ascx.cs" Inherits="powerFloat.AddWebUserControl" %> <style> .dn { display: none; } .shadow { -moz-box-shadow: 1px 1px 3px rgba(0, 0, 0, 4); -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 4); box-shadow: 1px 1px 3px rgba(0, 0, 0, 4); } .target_box { width: 700px; padding: 10px; border: 1px solid #aaa; background-color: #fff; } .target_list { padding: 4px; border-bottom: 1px dotted #ddd; overflow: hidden; _zoom: 1; } .target_list a { width: 160px; line-height: 20px; margin-right: 5px; padding: 1px; color: #333; font-size: 12px; text-align: left; text-decoration: none; float: left; } .target_list .select1 { width: 200px; line-height: 20px; margin-right: 5px; padding: 1px; color: red; font-size: 20px; text-align: left; text-decoration: none; float: left; } .target_more { margin-top: -20px; } .target_fixed { height: 25px; padding: 1px; position: fixed; _position: adsolute; top: 0; right: 0; } .custom_container { position: absolute; background-color: rgba(0, 0, 0, 5); background-color: #fff; } .custom_container img { padding: 0; position: relative; top: -5px; left: -5px; } </style> <table> <tr> <td>总署查验要求18项</td> <td> <input type="hidden" runat="server" id="hdnClientId" /> <asp:Literal ID="txt_CHECK_REQUEST_TOTAL" runat="server"></asp:Literal> </td> </tr> </table> <asp:Literal runat="server" ID="targetBox"></asp:Literal> <script src="scripts/jquery-1.4.1.js"></script> <script src="scripts/jquery-powerFloat.js"></script> <script> $(function () { var clientId = $("#Test_hdnClientId").val(); $(clientId).powerFloat( ) }); </script> ``` 4、悬浮层后台代码 ``` using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace powerFloat { public partial class AddWebUserControl : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { if(!Page.IsCallback) { InitData(); } } private void InitData() { string checkRequestTotal = "000101010101001001"; txt_CHECK_REQUEST_TOTAL.Text = string.Format("<a id='{1}_trigger' href='javascript:;' rel='Test_targetBox'>{0}</a>", checkRequestTotal, this.ClientID); hdnClientId.Value = "#" + this.ClientID + "_trigger"; char[] splitChar = checkRequestTotal.ToCharArray(); ArrayList arrayList = new ArrayList(); for(int i=0;i<splitChar.Length;i++) { arrayList.Add(splitChar[i].ToString()); } string strHTML = @" <div id='ABC$$_targetBox' class='shadow target_box dn'> <div class='target_list'> <a href='javascript:;' class='select{0}'>1.辐射探测</a> <a href='javascript:;' class='select{1}'>2.预防性检疫处理</a> <a href='javascript:;' class='select{2}'>3.检查病媒/有害生物</a> </div> <div class='target_list'> <a href='javascript:;' class='select{3}'>4.动物临床检查</a> <a href='javascript:;' class='select{4}'>5.检查残留剂</a> <a href='javascript:;' class='select{5}'>6.检查车体/箱体</a> </div> <div class='target_list'> <a href='javascript:;' class='select{6}'>7.检查包装</a> <a href='javascript:;' class='select{7}'>8.核对品名</a> <a href='javascript:;' class='select{8}'>9.检查标签/标识</a> </div> <div class='target_list'> <a href='javascript:;' class='select{9}'>10.核对规格/型号</a> <a href='javascript:;' class='select{10}'>11.核对产终地</a> <a href='javascript:;' class='select{11}'>12.核对数量</a> </div> <div class='target_list'> <a href='javascript:;' class='select{12}'>13.核对重量</a> <a href='javascript:;' class='select{13}'>14.检查侵权</a> <a href='javascript:;' class='select{14}'>15.检查外观品质</a> </div> <div class='target_list'> <a href='javascript:;' class='select{15}'>16.检查夹藏/夹杂</a> <a href='javascript:;' class='select{16}'>17.检查温度</a> <a href='javascript:;' class='select{17}'>18.取样送检</a> </div> </div> "; targetBox.Text = string.Format(strHTML, arrayList.ToArray()).Replace("ABC$$", this.ClientID); } } } ``` 三、源码下载 代码使用vs2012开发的。(链接:https://pan.baidu.com/s/1Y2c3yfC7oenSZwSw1Uh0VQ 提取码:iqr4 ) 四、解决:由于jquery-powerfloat.js版本问题导致的,使用新的版本的就可以了。 jquery-powerfloat.js:链接:https://pan.baidu.com/s/1sKorCkN1UkmCFtf-6MNVxg 提取码:rh5n
ssh 实体对象转jason 前台无法显示
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ include file="/public/head.jspf" %> <style type="text/css"> body { margin: 1px; } .searchbox { margin: -3; } </style> <script type="text/javascript"> $(function(){ $('#dg').datagrid({ //url地址改为请求categoryAction url:'forder_queryJoinUser.action', loadMsg:'Loading......', queryParams:{username:''}, fitColumns:true,//水平自动展开,如果设置此属性,则不会有水平滚动条,演示冻结列时,该参数不要设置 striped:true, //当数据多的时候不换行 nowrap:true, singleSelect:false, //如果为真,只允许单行显示,全显功能失效 //设置分页 pagination:true, //设置每页显示的记录数 pageSize:10, //设置可选的每页记录数,供用户选择,默认是10,20,30,40... pageList:[5,10,15,20], idField:'id',//指定id为标识字段,在删除,更新的时候有用,如果配置此字段,在翻页时,换页不会影响选中的项 toolbar: [{ iconCls: 'icon-edit', text:'更新订单', handler: function(){ //判断是否有选中行记录,使用getSelections获取选中的所有行 var rows = $("#dg").datagrid("getSelections"); if(rows.length == 0) { //弹出提示信息 $.messager.show({ //语法类似于java中的静态方法,直接对象调用 title:'错误提示', msg:'至少要选择一条记录', timeout:2000, showType:'slide', }); }else if(rows.length != 1) { //弹出提示信息 $.messager.show({ //语法类似于java中的静态方法,直接对象调用 title:'错误提示', msg:'每次只能更新一条记录', timeout:2000, showType:'slide', }); } else{ //弹出更新的页面 parent.$("#win").window({ title:"更新订单", width:350, height:250, content:'<iframe src="send_order_update.action" frameborder="0" width="100%" height="100%"/>' }); } } },'-',{ iconCls: 'icon-remove', text:'删除订单', handler: function(){ //判断是否有选中行记录,使用getSelections获取选中的所有行 var rows = $("#dg").datagrid("getSelections"); //返回被选中的行,如果没有任何行被选中,则返回空数组 if(rows.length == 0) { //弹出提示信息 $.messager.show({ title:'错误提示', msg:'至少要选择一条记录', timeout:2000, showType:'slide', }); } else { //提示是否确认删除,如果确认则执行删除的逻辑 $.messager.confirm('删除的确认对话框', '您确定要删除此项吗?', function(r){ if (r){ //1. 从获取的记录中获取相应的的id,拼接id的值,然后发送后台1,2,3,4 var ids = ""; for(var i = 0; i < rows.length; i ++) { ids += rows[i].id + ","; } ids = ids.substr(0, ids.lastIndexOf(",")); //2. 发送ajax请求 $.post("forder_deleteByIds.action",{ids:ids},function(result){ if(result == "true") { //将刚刚选中的记录删除,要不然会影响后面更新的操作 $("#dg").datagrid("uncheckAll"); //刷新当前页,查询的时候我们用的是load,刷新第一页,reload是刷新当前页 $("#dg").datagrid("reload");//不带参数默认为上面的queryParams } else { $.messager.show({ title:'删除异常', msg:'删除失败,请检查操作', timeout:2000, showType:'slide', }); } },"text"); } }); } } },'-',{ //查询按钮不是LinkButton,它有语法,但是也支持解析HTML标签 text:"<input id='ss' name='serach' />" }], rowStyler: function(index,row){ console.info("index" + index + "," + row) if(index % 2 == 0) { return 'background-color:#fff;'; } else { return 'background-color:#c4e1e1;'; } }, //同列属性,但是这些列将会冻结在左侧,大小不会改变,当宽度大于250时,会显示滚动条,但是冻结的列不在滚动条内 frozenColumns:[[ {field:'checkbox',checkbox:true}, {field:'id',title:'编号',width:60} ]], columns:[[ {field:'name',title:'收货人姓名',width:80}, {field:'phone',title:'收货人电话',width:100}, {field:'remark',title:'买家留言',width:100}, {field:'date',title:'创建日期',width:100}, {field:'total',title:'订单总价',width:100}, {field:'address',title:'收货地址',width:150}, {field:'user.id',title:'买家id',width:60}, {field:'user.login',title:'买家登录名',width:80}, {field:'status.status',title:'订单状态',width:100} ]] }); //把普通的文本框转化为查询搜索文本框 $('#ss').searchbox({ //触发查询事件 searcher:function(value,username){ //value表示输入的值 //获取当前查询的关键字,通过DataGrid加载相应的信息,使用load加载和显示第一页的所有行。 //如果指定了参数,它将取代'queryParams'属性。通常可以通过传递一些参数执行一次查询,通过调用这个方法会向上面url指定的action去发送请求,从服务器加载新数据。 $('#dg').datagrid('load',{ username: value }); }, prompt:'请输入搜索关键字' }); }); </script> </head> <body> <table id="dg"></table> </body> </html> `jsp代码 下面action: public String queryJoinUser() { // 用来存储分页的数据 pageMap = new HashMap<String, Object>(); System.out.println(username); // 根据关键字和分页的参数查询相应的数据 List<Forder> forderList = forderService.queryJoinUser(username, page, rows); pageMap.put("\"rows\"", forderList); pageMap.put("\"total\"", forderService.getCount(username)); System.out.println(pageMap); return "jsonMap"; } struts.xml <action name="forder_*" class="forderAction" method="{1}"> <result name="jsonMap" type="json"> <param name="root">pageMap</param> <param name="excludeProperties"> rows\[\d+\]\.post, rows\[\d+\]\.user\.pass, rows\[\d+\]\.user\.sex, rows\[\d+\]\.user\.phone, rows\[\d+\]\.user\.email, rows\[\d+\]\.status\.id </param> </result> <result name="bank"> /user/bank.jsp </result> </action> 执行后pageMap的输出: {"total"=1, "rows"=[Forder [id=1, name=张小, phone=1851663595, remark=是否被, date=null, total=14.00, post=4325232, addressrk=, date=null, total=100.00, post=dcvdf, address=市场v吃饭的]]} `` 没有报任何错误就是不显示![图片说明](https://img-ask.csdn.net/upload/201706/07/1496767475_187876.png) ``` ``` ```
Help!!! Struts2+ExtJs action返回结果输出到其他页面的问题
想要实现的是获取action返回后跳转到另外的页面(struts.xml控制),并把数据用GridPane输出.也就是用gridpanel替换掉"<s:iterator>"标签的作用. 例如 getUser.jsp->submit->searchuser.action->(json string)userlist->userlist.jsp(gridpanel显示). 请问,ExtJs是AJAX 实现的话,[color=red]action是否一定是将数据返回到提交页面的?[/color]例如 getUser.jsp->searchuser.action->getUser.jsp. 如果是,那应该怎样将数据转移给我想要跳转的页面(userlist.jsp)? 下面是我做的一个例子,跳转到userlist.jsp后GridPanel[color=red]只看到Grid而没有数据[/color],初学ExtJs,请各位多多指教!! getUser.jsp(action="searchuser")用于提交用户ID,略过. struts.xml [code="xml"] <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="prodinfo" extends="struts-default"> <action name="searchuser" class="userAction" method="searchUser"> <result name="success">/userlist.jsp</result> </action> </package> </struts> [/code] 响应searchuser.action的class:userAction [code="java"] package com.prodinfo.action; import java.util.Map; import java.util.List; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import java.util.Collection; import com.prodinfo.biz.*; import com.prodinfo.common.*; import com.prodinfo.dao.*; import com.prodinfo.pojo.Logger; import com.prodinfo.pojo.SysUsr; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; public class UserAction extends ActionSupport { private String userid; private String password; private String username; private String usrpwdques; private String usrpwdans; private String usremail; private ILoggerDao loggerdao; private IUserOperation uo; private ComDate comdate; private ComSession ssn; private SysUsr sysusr; public String userlist; public UserAction() { comdate = new ComDate(); ssn = new ComSession(); } public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUsrpwdques() { return usrpwdques; } public void setUsrpwdques(String usrpwdques) { this.usrpwdques = usrpwdques; } public String getUsrpwdans() { return usrpwdans; } public void setUsrpwdans(String usrpwdans) { this.usrpwdans = usrpwdans; } public String getUsremail() { return usremail; } public void setUsremail(String usremail) { this.usremail = usremail; } public void setLoggerdao(ILoggerDao loggerdao) { this.loggerdao = loggerdao; } public void setUo(IUserOperation uo) { this.uo = uo; } public String getUserlist() { return userlist; } public void setUserlist(String userlist) { this.userlist = userlist; } public String searchUser() { try { ComUserInfo comuserinfo = new ComUserInfo(); if (comuserinfo.getUserid() != "") { List result = uo.searchUser(getUserid()); JsonUtil ju = new JsonUtil(); String jsresult = ju.collection2json(result); this.userlist = ("{" + "\"userlist\": " + jsresult + " }"); System.out.println(userlist); //response.getWriter().println(userlist); return SUCCESS; } else { ssn.add("errmsg", "User not login yet!"); return ERROR; } } catch (Exception e) { ssn.add("errmsg", e.getMessage()); return ERROR; } } } [/code] userAction返回的"userlist"数据如下: { "userlist": [ {"usrCreateBy":"","usrCreateDate":"","usrDisableDate":"", "usrEmail":"Frankie@together.com","usrId":"80319474","usrName":"Frankie", "usrPwd":"1233","usrPwdAns":"1+1","usrPwdQues":"2", "usrRemark":"","usrUpdateBy":"","usrUpdateDate":""}, {"usrCreateBy":"","usrCreateDate":"","usrDisableDate":"", "usrEmail":"Justin@together.com","usrId":"80334272","usrName":"Justin", "usrPwd":"1234","usrPwdAns":"2","usrPwdQues":"1+1", "usrRemark":"nothing","usrUpdateBy":"","usrUpdateDate":""}, {"usrCreateBy":"","usrCreateDate":"","usrDisableDate":"", "usrEmail":"Justin@together.com","usrId":"sa","usrName":"sysadmin", "usrPwd":"a","usrPwdAns":"2","usrPwdQues":"1+1", "usrRemark":"nothing","usrUpdateBy":"","usrUpdateDate":""} ] } 输出页面的js: userlist.js: [code="java"] /* * Ext JS Library 3.0 RC2 Copyright(c) 2006-2009, Ext JS, LLC. * licensing@extjs.com * * http://extjs.com/license */ Ext.onReady(function() { Ext.QuickTips.init(); // turn on validation errors beside the field globally // Ext.form.Field.prototype.msgTarget = 'side'; var cm = new Ext.grid.ColumnModel([{ header : '用户ID', dataIndex : 'userId' }, { header : '用户昵称', dataIndex : 'usrName' }, { header : '密码', dataIndex : 'usrPwd' }, { header : '电子邮件地址', dataIndex : 'usrEmail' }, { header : '密码提示问题', dataIndex : 'usrPwdQues' }, { header : '密码提示问题答案', dataIndex : 'usrPwdAns' }]); var reader = new Ext.data.Store({ root : 'userlist' }, [{ name : 'usrId', mapping : 'userId' }, { name : 'usrName', mapping : 'usrName' }, { name : 'usrPwd', mapping : 'usrPwd' }, { name : 'usrEmail', mapping : 'usrEmail' }, { name : 'usrPwdQues', mapping : 'usrPwdQues' }, { name : 'usrPwdAns', mapping : 'usrPwdAns' }]); var pxy = new Ext.data.HttpProxy({ url : 'searchuser.action', method : 'GET' }) var ds = new Ext.data.JsonStore({ proxy : pxy, reader : reader }); var grid = new Ext.grid.GridPanel({ store : ds, sm : sm, cm : cm, loadMask : { msg : ' 数据加载中...' }, autoHeight : true }); var sm = new Ext.grid.CheckboxSelectionModel(); var vp = new Ext.Viewport({ layout : "border", frame : true, title : "注册", autoHeight : true, items : [{// Viewport region : "north", height : 100, title : "顶部面板" }, { region : "south", height : 50, title : "底部面板" }, { region : "west", width : "20%", title : "左边面板" }, { region : "east", width : "20%", title : "右边面板" }, { region : "center", title : "中央面板", items : [frm = new Ext.FormPanel({ items : [grid] } /* Eof formpanel */) /* Eof border center */] } /* Eof Viewport */] }); grid.render(); ds.load(); vp.render(document.body); }); [/code] [b]问题补充:[/b] 感谢 yourgame (资深架构师) 的回答 你完全理解错误了.. 如果用到了extjs 就不需要什么跳转了.你直接输出out.print(json); =========================================================== 您的意思是否我在问题里提到的"ExtJs是AJAX 实现的话,action是否一定是将数据返回到提交页面的?例如 getUser.jsp->searchuser.action->getUser.jsp."? 可是如果我想把数据放到其他页面的话,我应该怎么做才能把数据送过去呢.请不吝赐教. [b]问题补充:[/b] 感谢两位的回答,我现在转换了思路,当用户提交了之后,先进行页面跳转到userlist.jsp,然后才在userlist,jsp里去请求action的返回数据,并放到GridPanel里,不知道这种思路是否可行. 即: getUser.jsp->Submit->redirect->userlist.jsp->searchuser.action->userlist.jsp(Grid展现)
手机播放器JS判断代码重复的问题
这是西瓜的手机端JS判断代码,现在一个严重的问题就是播放器调用返回到播放页面,第一次的时候又马上调用播放器,再从播放界面退出来就不会 这是代码,大神帮忙分析一下 ``` document.writeln("<div id=\"xg_box\"></div>"); if(XgPlayer.Second<1){ XgPlayer.Second=1; } var browser; var installflag=1; function $XghdInstall(){ $$("xg_box").style.display="none"; if(installflag==1){ document.writeln('<iframe border="0" src="'+XgPlayer.Installpage+'" marginWidth="0" frameSpacing="0" marginHeight="0" frameBorder="0" noResize scrolling="no" width="'+XgPlayer.Width+'" height="'+XgPlayer.Height+'" vspale="0" ></iframe>'); installflag=0; } } var AdsBeta6 = { 'Start': function() { $$('buffer').style.display = 'block'; if(xiguaPlayer.IsBuffing()){ $$('buffer').height = XgPlayer.Height-80; }else{ $$('buffer').height = XgPlayer.Height-60; } }, 'End': function() { if(!XgPlayer.Second){ $$('buffer').style.display = 'none'; $$('xiguaPlayer').style.display = 'block'; xiguaPlayer.height = XgPlayer.Height; } }, 'Status' : function() { if(xiguaPlayer.IsPlaying()){ this.End(); }else{ this.Start(); } } } function $$(id){ return document.getElementById(id); } function $Showhtml(){ browser = navigator.appName; if(browser == "Netscape"|| browser == "Opera"){ if(/iPad|iPhone/i.test(navigator.userAgent)) { setTimeout($PlayerIOS,1000); } if(/Android/i.test(navigator.userAgent)) { $PlayerAndroid(); } if(isIE()){ return $PlayerIe(); }else{ return $PlayerNt(); } }else if(browser == "Microsoft Internet Explorer"){ return $PlayerIe(); } else{ alert('请使用IE内核浏览器观看本站影片!'); } } function isIE() { if (!!window.ActiveXObject || "ActiveXObject" in window) { browser = "Microsoft Internet Explorer"; return true; } return false; } function installapp(){ return function(){ var clickedAt = +new Date; setTimeout(function() { try{if(isxg()){return;}}catch(e){;} if (+new Date - clickedAt < 1500) { alert("即将为你转到苹果商店下载\"瓜瓜播放器\",安装成功后,重新刷新本页面进行播放"); setTimeout(function(){ var surl="https://itunes.apple.com/cn/app/gua-gua-bo-fang-qi/id977122011?l=en&mt=8"; top.location.href=surl; },3000); } }, 500); }; } function $PlayerIOS(){ var newurl="#"; if(typeof(XgPlayer)!='undefined'){ newurl = XgPlayer['Url'].replace("ftp://","xg://"); } else if(typeof(Player)!='undefined'){ newurl = Player['Url'].replace("ftp://","xg://"); } var xuanjipage = top.location.href; if(typeof(XgPlayer['XuanJiPage'])!='undefined') xuanjipage = XgPlayer['XuanJiPage']; if(typeof(XgPlayer['MobiAd'])!='undefined')top.location.href = newurl+"|"+XgPlayer['MobiAd']+"|"+xuanjipage; else top.location.href = newurl; installapp()(); } function $PlayerAndroid(){ var finalurl; var newurl="#"; if(typeof(XgPlayer)!='undefined'){ newurl = XgPlayer['Url'].replace("ftp://","xg://"); } else if(typeof(Player)!='undefined'){ newurl = Player['Url'].replace("ftp://","xg://"); } var xuanjipage = top.location.href; if(typeof(XgPlayer['XuanJiPage'])!='undefined') xuanjipage = XgPlayer['XuanJiPage']; if(typeof(XgPlayer['MobiAd'])!='undefined')finalurl = newurl+"|"+XgPlayer['MobiAd']+"|"+xuanjipage; else finalurl = newurl; // 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为 // 否则打开a标签的href链接 var timeout, t = 1000, hasApp = true; setTimeout(function () { if (hasApp) { location.href=finalurl; } else { //top.location.href="http://static.xigua.com/xigua_v2.apk"; top.location.href="http://s2.xiguaplayer.com/xigua_v1.07.apk"; } document.body.removeChild(ifr); }, 2000) var t1 = Date.now(); var ifr = document.createElement("iframe"); ifr.setAttribute('src', finalurl); ifr.setAttribute('style', 'display:none'); document.body.appendChild(ifr); timeout = setTimeout(function () { var t2 = Date.now(); if (!t1 || t2 - t1 < t + 100) { hasApp = false; } }, t); } function $PlayerNt(){ if (navigator.plugins) { var install = true; for (var i=0;i<navigator.plugins.length;i++) { if(navigator.plugins[i].name == 'XiGua Yingshi Plugin'){ install = false;break; } } if(!install){ player = '<div style="width:'+XgPlayer.Width+'px;height:'+XgPlayer.Height+'px;overflow:hidden;position:relative"><iframe src="'+XgPlayer.Buffer+'" scrolling="no" width="100%" height="100%" frameborder="0" marginheight="0" marginwidth="0" name="buffer" id="buffer" style="position:absolute;z-index:2;top:0px;left:0px"></iframe><object width="'+XgPlayer.Width+'" height="'+XgPlayer.Height+'" type="application/xgyingshi-activex" progid="xgax.player.1" param_URL="'+XgPlayer.Url+'" param_NextCacheUrl="'+XgPlayer.NextcacheUrl+'" param_LastWebPage="'+XgPlayer.LastWebPage+'" param_NextWebPage="'+XgPlayer.NextWebPage+'" param_OnPause="onPause" param_OnFirstBufferingStart="onFirstBufferingStart" param_OnFirstBufferingEnd="onFirstBufferingEnd" param_OnPlayBufferingStart="onPlayBufferingStart" param_OnPlayBufferingEnd="onPlayBufferingEnd" param_OnComplete="onComplete" param_Autoplay="1" id="xiguaPlayer" name="xiguaPlayer"></object></div>'; if(XgPlayer.Second){ setTimeout("onAdsEnd()",XgPlayer.Second*1000); } return player; } } return '<iframe border="0" src="'+XgPlayer.Installpage+'" marginWidth="0" frameSpacing="0" marginHeight="0" frameBorder="0" noResize scrolling="no" width="'+XgPlayer.Width+'" height="'+XgPlayer.Height+'" vspale="0" ></iframe>'; } function $PlayerIe(){ playerhtml = '<iframe src="'+XgPlayer.Buffer+'" id="buffer" width="'+XgPlayer.Width+'" height="'+(XgPlayer.Height-80)+'" scrolling="no" frameborder="0" style="position:absolute;z-index:9;"></iframe><object classid="clsid:BEF1C903-057D-435E-8223-8EC337C7D3D0" style="display:none" width="'+XgPlayer.Width+'" height="'+XgPlayer.Height+'" id="xiguaPlayer" name="xiguaPlayer" onerror="$XghdInstall();"><param name="URL" value="'+XgPlayer.Url+'"/><param name="NextCacheUrl" value="'+XgPlayer.NextcacheUrl+'"><param name="LastWebPage" value="'+XgPlayer.LastWebPage+'"><param name="NextWebPage" value="'+XgPlayer.NextWebPage+'"><param name="OnPlay" value="onPlay"/><param name="OnPause" value="onPause"/><param name="OnFirstBufferingStart" value="onFirstBufferingStart"/><param name="OnFirstBufferingEnd" value="onFirstBufferingEnd"/><param name="OnPlayBufferingStart" value="onPlayBufferingStart"/><param name="OnPlayBufferingEnd" value="onPlayBufferingEnd"/><param name="OnComplete" value="onComplete"/><param name="Autoplay" value="1"/></object>'; return playerhtml; } function $PlayerIeBack(){ if(browser == "Microsoft Internet Explorer"){ if(xiguaPlayer.URL != undefined){ if(XgPlayer.Second){ setTimeout("onAdsEnd()",XgPlayer.Second*1000); } } xiguaPlayer.ConfigurePlayer('url', XgPlayer.Url); } } //beta7版播放器回调函数 var onPlay = function(){ $$('buffer').style.display = 'none'; //强制缓冲广告倒计时 if(XgPlayer.Second&&xiguaPlayer.IsPlaying()){ xiguaPlayer.Play(); } } var onPause = function(){ $$('buffer').height = XgPlayer.Height-63; $$('buffer').style.display = 'block'; } var onFirstBufferingStart = function(){ $$('buffer').height = Player.Height-80; $$('buffer').style.display = 'block'; } var onFirstBufferingEnd = function(){ if(XgPlayer.Second){ xiguaPlayer.Play(); }else{ $$('buffer').style.display = 'none'; } } var onPlayBufferingStart = function(){ $$('buffer').height = XgPlayer.Height-80; $$('buffer').style.display = 'block'; } var onPlayBufferingEnd = function(){ $$('buffer').style.display = 'none'; } var onComplete = function(){ onPause(); } var onAdsEnd = function(){ XgPlayer.Second = 0; $$('buffer').style.display = 'none'; xiguaPlayer.style.display = 'block'; setInterval("adshow()",1000); } function adshow(){ if(xiguaPlayer.IsPlaying()){ $$('buffer').style.display = 'none'; }else if(xiguaPlayer.IsBuffing()){ $$('buffer').height = XgPlayer.Height-63; $$('buffer').style.display = 'block'; }else if(xiguaPlayer.IsPause()){ $$('buffer').height = XgPlayer.Height-63; $$('buffer').style.display = 'block'; }else{ $$('buffer').height = XgPlayer.Height-63; $$('buffer').style.display = 'block'; } } var install = true; playerhtml=$Showhtml(); $$("xg_box").innerHTML=playerhtml; $PlayerIeBack(); ```
关于提交页面(即提交表单)的问题?
1.login.jsp:代码片段 [code="java"]<td align="left"><input type="image" src="/images/btn_enter.gif" name="image"></td> //说明:这里是一个图片,点击图片之后提交页面(具体点说是会员登陆)————但是对这段代码有点不清楚,一般情况下,提交页面应该是提交按钮(<input type="submit"/>);即使要设置按钮的背景图片也可以这样<input type="submit" src="url";当然还可以用js/jquery对它进行处理然后提交页面,但问题是没有任何js代码对这个标签进行处理,那么这里到底是如何提交页面的呢,或者说,还有什么其他的方式提交页面么?[/code] 2.用chrome调试的时候,与login.jsp页面相关的js代码是: a.login.jsp里面的js [code="java"]<script type="text/javascript"> <!-- var redirectUrl="<%=session.getAttribute(Constants.C.VAR_REDIRECT_URL)%>"; jQuery(function() { jQuery("#txt_uid").focus(); }); //--> </script>[/code] b.login.js [code="java"]/** * 登录处理 */ jQuery(function($){ $("#uid").val("Uid").mouseover(function (){ //1.这里设置断点,会执行到该断点! if(!$(this).attr("changed")){ $(this).val(""); } }).mouseout(function(){ if(!$(this).attr("changed")){ $(this).val("Uid"); } }).keypress(function(){ $(this).attr("changed",true); }); $("#pwd").val("Password").mouseover(function (){ if(!$(this).attr("changed")){ $(this).val(""); } }).mouseout(function(){ if(!$(this).attr("changed")){ $(this).val("Password"); } }).keypress(function(){ $(this).attr("changed",true); }); }); function doLogin(form){ var param=jQuery(form).serialize()+"&json=true"; //2.这里设置断点,不会被执行————因为我搜索的时候,也确实没有看到有哪个地方调用了doLogin函数 var x=$("#span_loginErrMsg"); x.html("Logging in..."); $.post(form.action,param,function(json){ if(json.success){ if("null"!=redirectUrl){ window.location=redirectUrl; }else{ $("#div_login").load("/inc/login.jsp"); } }else{ var html=""; switch(json.errCode){ case -1: html="Can't Connect to Database"; break; case -2: html="No Related Customer Found!"; break; case -3: html="Invalid Uid / Pwd, or account is locked"; break; case -10: html="Signin attemps too many times!"; break; case -99: html="Signin attemps too many times!"; break; } x.html("<span style='color:red'>"+html+"</span>"); } },"json"); return false; }[/code]
ssh多对多如何在jsp页面输出?
这是查询所有的结果集 //显示所有 controller控制层 public String findAll(){ if (page==null) { page=new PageUtil(); } page.setTotalCount(teastuService.queryCount(each)); HttpServletRequest request = ServletActionContext.getRequest(); teaList=teastuService.findAll(each,page); if(teaList.size() < 1 ){ request.setAttribute("eachNo", "没有此条信息!"); } request.setAttribute("teaList", teaList); return "showList"; } 这是dao下的方法 @Resource(name="sessionFactory") SessionFactory sessionFactory; public List<Teacher> findAll(String each,PageUtil page) { Session session = sessionFactory.openSession(); String eachType="%"+each+"%"; Query query=session.createQuery("select t from Teacher t where t.TName like '"+eachType+"'"); query.setFirstResult(page.getPageIndex()*page.getPageSize()-page.getPageSize()); query.setMaxResults(page.getPageSize()); List<Teacher> list = query.list(); session.close(); return list; } ``` Student实体类 /** * Student entity. @author MyEclipse Persistence Tools */ @Entity @Table(name = "student", catalog = "asd") public class Student implements java.io.Serializable { // Fields private Integer SId; private String SName; private Set<Teacher> teachers = new HashSet<Teacher>(0); // Constructors /** default constructor */ public Student() { } /** full constructor */ public Student(String SName, Set<Teacher> teachers) { this.SName = SName; this.teachers = teachers; } // Property accessors @GenericGenerator(name = "generator", strategy = "increment") @Id @GeneratedValue(generator = "generator") @Column(name = "s_id", unique = true, nullable = false) public Integer getSId() { return this.SId; } public void setSId(Integer SId) { this.SId = SId; } @Column(name = "s_name", length = 50) public String getSName() { return this.SName; } public void setSName(String SName) { this.SName = SName; } @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "students") public Set<Teacher> getTeachers() { return this.teachers; } public void setTeachers(Set<Teacher> teachers) { this.teachers = teachers; } Teacher实体类 /** * Teacher entity. @author MyEclipse Persistence Tools */ @Entity @Table(name = "teacher", catalog = "asd") public class Teacher implements java.io.Serializable { // Fields private Integer TId; private String TName; private Set<Student> students = new HashSet<Student>(0); // Constructors /** default constructor */ public Teacher() { } /** full constructor */ public Teacher(String TName, Set<Student> students) { this.TName = TName; this.students = students; } // Property accessors @GenericGenerator(name = "generator", strategy = "increment") @Id @GeneratedValue(generator = "generator") @Column(name = "t_id", unique = true, nullable = false) public Integer getTId() { return this.TId; } public void setTId(Integer TId) { this.TId = TId; } @Column(name = "t_name", length = 50) public String getTName() { return this.TName; } public void setTName(String TName) { this.TName = TName; } @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinTable(name = "teacher_student", catalog = "asd", joinColumns = { @JoinColumn(name = "t_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "s_id", nullable = false, updatable = false) }) public Set<Student> getStudents() { return this.students; } public void setStudents(Set<Student> students) { this.students = students; } ``` jsp页面输出显示 ``` <form action="teaStuController!deleteMore" onsubmit="return delMore()" method="post" > <table style="text-align: left" width="800px" > <tr> <th id="t1"><input id="qx" type="checkbox" onchange="quanxuan()"/>全选</th> <th>编号</th> <th>学生姓名</th> <th>老师姓名</th> <th><a href="teaStuController!addpage">添加</a></th> </tr> <s:iterator var="tea" value="#request.teaList"> <tr> <td><input type="checkbox" name="ids" value="<s:property value="#tea.TId"/>"/></td> <td><s:property value="#tea.TId"/></td> <td> ????????????(这位迭代一直报错) </td> <td><s:property value="#tea.TName"/></td> <td> <a href="teaStuController!updatePage?teacher.TId=<s:property value="#tea.TId"/>"> 修改</a> <a href="teaStuController!deleteOne?teacher.TId=<s:property value="#tea.TId"/>"> 删除</a> </td> </tr> </s:iterator> 我中间用了C标签迭代报错,后来改用S标签迭代几次还是报错,求教大神 多对多这里应该怎么迭代,还是我其他代码错了,谢谢了. ```
thinkphp登录连接数据库验证时出现404错误
错误界面 ![图片说明](https://img-ask.csdn.net/upload/201701/12/1484210922_771859.png) html ``` <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content=""> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href=""> <title>泡车堂登录</title> <!-- Bootstrap core CSS --> <link href="/carProject/Public/css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <![endif]--> </head> <body> <div class="container" id="d1"> <div class="row"> <div class="col-sm-6 col-sm-offset-3 form-box"> <div class="form-top"> <h2>泡车堂商户PAD版</h2> </div> <div class="form-bottom"> <form role="form" method="post" class="login-form"> <div class="form-group"> <label class="sr-only" >用户名</label> <input type="text" name="username" placeholder="请输入您的用户名" class="form-control" required> </div> <div class="form-group"> <label class="sr-only" >密码</label> <input type="password" name="password" placeholder="请输入您的密码" class="form-control" required> </div> <button type="button" class="btn btn-primary btn-block" onclick="login.check()">登录</button> </form> </div> </div> </div> </div> <script type="text/javascript"> function autoHeight(){ var winHeight=0; if (window.innerHeight) winHeight = window.innerHeight; else if ((document.body) && (document.body.clientHeight)) winHeight = document.body.clientHeight; if (document.documentElement && document.documentElement.clientHeight) winHeight = document.documentElement.clientHeight; document.getElementById("d1").style.marginTop= winHeight/3 +"px"; } autoHeight(); window.onresize = autoHeight; </script> <script src="/carProject/Public/js/jquery.js"></script> <script src="/carProject/Public/js/dialog/layer.js"></script> <script src="/carProject/Public/js/dialog.js"></script> <script src="/carProject/Public/js/admin/login.js"></script> <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> </body> </html> ``` login.js ``` var login = { check : function() { // 获取登录页面中的用户名 和 密码 var username = $('input[name="username"]').val(); var password = $('input[name="password"]').val(); if(!username) { dialog.error('用户名不能为空'); } if(!password) { dialog.error('密码不能为空'); } var url = "/carProject/index.php?m=admin&c=login&a=check"; var data = {'username':username,'password':password}; // 执行异步请求 $.post $.post(url,data,function(result){ if(result.status == 0) { return dialog.error(result.message); } if(result.status == 1) { return dialog.success(result.message, 'https://www.baidu.com/'); } },'JSON'); } } ``` AdminModel.class.php ``` <?php namespace Common\Model; use Think\Model; class AdminModel extends Model { private $_db = ''; public function __construct() { $this->_db = M('Admin'); } public function getAdminByUsername($username='') { $res = $this->_db->where('name="'.$username.'"')->find(); return $res; } } ``` LoginController.class.php ``` <?php namespace Admin\Controller; use Think\Controller; /** * use Common\Model 这块可以不需要使用,框架默认会加载里面的内容 */ class LoginController extends Controller { public function index(){ $this->display(); } public function check() { $username = $_POST['username']; $password = $_POST['password']; if(!trim($username)) { return show(0,'用户名不能为空'); } if(!trim($password)) { return show(0,'密码不能为空'); } print_r(C('DB_TYPE')); //导入当前项目下面的Model/AdminModel.class.php文件,然后实例化AdminModel类 $ret = D('Admin')->getAdminByUsername($username); print_r($ret); /* if(!$ret) { return show(0,'该用户不存在'); } if($ret['pwd'] != getMd5Password($password)) { return show(0,'密码错误'); } session('adminUser', $ret); return show(1,'登录成功');*/ } } ``` # 对数据库的配置 config.php ``` <?php return array( //'配置项'=>'配置值' //URL地址不区分大小写 'URL_CASE_INSENSITIVE' =>true, 'URL_MODEL'=>0, 'LOAD_EXT_CONFIG' => 'db', 'MD5_PRE' => 'sing_cms', 'HTML_FILE_SUFFIX' => '.html', ); ``` db.php ``` <?php return array( 'DB_TYPE' => 'mysql', 'DB_HOST' => '127.0.0.1', 'DB_USER' => 'root', 'DB_PWD' => '111111', 'DB_PORT' => 3366, 'DB_NAME' => 'demo', 'DB_CHARSET' => 'utf8', 'DB_PREFIX' =>'t_', ); ```
Struts1.3+spring2.5+hibernate3.2部署tomcat6.0.18报错请教
<p><span style="font-size: small;">Struts1.3+spring2.5+hibernate3.2部署在tomcat6.0.18虽然成功,但是对数据库的查询回报错。 <br>添加修改都能成功。在Myeclipse6.5里运行项目完全没有问题。但是部署到tomcat6.0.18里,查询就报错。</span></p> <p><span style="font-size: small;">郁闷了很久了。希望得到帮助。</span></p> <p><span style="font-size: small;">---------------------------------错误信息--------------------------------</span></p> <p>2009-6-24 17:45:02 org.apache.catalina.core.ApplicationContext log<br>信息: Initializing Spring root WebApplicationContext<br>2009-6-24 17:45:41 org.apache.catalina.core.ApplicationDispatcher invoke<br>严重: Servlet.service() for servlet jsp threw exception<br>javax.servlet.ServletException: javax/servlet/jsp/tagext/Tag<br> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:275)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)<br> at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)<br> at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)<br> at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)<br> at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)<br> at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)<br> at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)<br> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)<br> at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)<br> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)<br> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)<br> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)<br> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)<br> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)<br> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)<br> at java.lang.Thread.run(Thread.java:619)<br>2009-6-24 17:45:41 org.apache.catalina.core.StandardWrapperValve invoke<br>严重: Servlet.service() for servlet action threw exception<br>javax.servlet.ServletException: javax/servlet/jsp/tagext/Tag<br> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:275)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)<br> at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)<br> at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)<br> at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)<br> at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)<br> at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)<br> at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)<br> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)<br> at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)<br> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)<br> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)<br> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)<br> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)<br> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)<br> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)<br> at java.lang.Thread.run(Thread.java:619)</p> <p>-------------------------------------------------------------------------------------------------------------------------</p> <p> </p> <p>先谢谢啦!</p> <p> </p> <p>----------------------------------------------------------------------------------------</p> <p>以我的推测应该是tomcat没有识别出页面标签,也许问题出在servlet-api.jar,或jsp-api.jar上。</p> <p>但是如果把这两个jar加到项目的lib目录里是报错的,貌似环境变量里配也试过了,tomcat的高版本6.0.20和低版本5.5也试过了,都不好使。</p> <p> </p> <p> </p><br /><strong>问题补充:</strong><br />先感谢lovewhzlq的回复,您说的servlet版本低指的是哪里的低,tomcat lib里的,还是说我项目里的jar包版本低。我项目里没有servlet的jar包,因为tomcat都有提供。在myeclipse6.5里运行一点问题都没有。但不知为什么拿出来运行,查询就报错,现在我推断很有可能是就是页面标签的问题。我下面贴上来一个查询后分页的页面。大家再帮忙看看哪里的标签有问题? <br /> <br />&lt;%@ page language="java" pageEncoding="UTF-8"%&gt; <br />&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt; <br />&lt;%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %&gt; <br />&lt;%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %&gt; <br />&lt;%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %&gt; <br />&lt;%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %&gt; <br />&lt;% <br />String path = request.getContextPath(); <br />String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; <br />%&gt; <br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; <br />&lt;html&gt; <br />&nbsp; &lt;head&gt; <br />&nbsp;&nbsp;&nbsp; &lt;base href="&lt;%=basePath%&gt;"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;title&gt;河北大学综合新闻网&lt;/title&gt; <br />&nbsp; &lt;/head&gt; <br />&nbsp; &lt;body&gt; <br />&nbsp;&nbsp;&nbsp; &lt;center&gt; <br /> &lt;h3&gt; <br /> 回收站 <br /> &lt;/h3&gt; <br /> &lt;table border="2" width="600"&gt; <br /> &lt;tr&gt; <br /> &lt;td&gt; <br /> 标题 <br /> &lt;/td&gt; <br /> &lt;td&gt; <br /> 发布时间 <br /> &lt;/td&gt; <br /> &lt;td&gt; <br /> 状态 <br /> &lt;/td&gt; <br /> &lt;td&gt; <br /> 操作 <br /> &lt;/td&gt; <br /> &lt;/tr&gt; <br /> &lt;c:forEach items="${requestScope['messageList']}" var="message"&gt; <br /> &lt;tr&gt; <br /> &lt;td&gt; <br /> &lt;c:out value="${message.title}" /&gt; <br /> &lt;/td&gt; <br /> &lt;td&gt; <br /> &lt;c:out value="${message.addTime}" /&gt; <br /> &lt;/td&gt; <br /> &lt;td&gt; <br /> &lt;c:if test="${1==message.isPost}"&gt; <br /> 已审核通过 <br /> &lt;/c:if&gt; <br /> &lt;c:if test="${0==message.isPost}"&gt; <br /> 未审核 <br /> &lt;/c:if&gt; <br /> &lt;/td&gt; <br /> &lt;td&gt; <br /> &lt;a href="./getMessage.do?id=&lt;c:out value="${message.id}"/&gt;"&gt;查看详细&lt;/a&gt;&amp;nbsp;&amp;nbsp; <br /> &lt;a href="./setNoDelMessage.do?id=&lt;c:out value="${message.id}"/&gt;" <br /> onclick="javascript:return confirm('您要还原这条信息吗?')"&gt;还原&lt;/a&gt;&amp;nbsp;&amp;nbsp; <br /> &lt;a href="./deleteMessage.do?id=&lt;c:out value="${message.id}"/&gt;" <br /> onclick="javascript:return confirm('您要删除这条信息吗?')"&gt;删除&lt;/a&gt; <br /> &lt;/td&gt; <br /> &lt;tr&gt; <br /> &lt;/c:forEach&gt; <br /> &lt;/table&gt; <br /> &lt;table align="center" width="500"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;tr&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center" colspan="10"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每页&lt;bean:write name="messagePage" property="pageSize"/&gt;条记录 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 共&lt;bean:write name="messagePage" property="rowCount"/&gt;条记录 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当前第(&lt;bean:write name="messagePage" property="currentPage"/&gt;/&lt;bean:write name="messagePage" property="totalPage"/&gt;)页 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:present name="messagePage"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:link page="/listRecycle.do?pno=1"&gt;首页&lt;/html:link&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:equal name="messagePage" property="hasPreviousPage" value="false"&gt;上一页&lt;/logic:equal&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:equal name="messagePage" property="hasPreviousPage" value="true"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="./listRecycle.do?pno=&lt;bean:write name="messagePage" property="prePage"/&gt;"&gt;上一页&lt;/a&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:equal&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:equal name="messagePage" property="hasNextPage" value="false"&gt;下一页&lt;/logic:equal&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;logic:equal name="messagePage" property="hasNextPage" value="true"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="./listRecycle.do?pno=&lt;bean:write name="adminPage" property="nextPage"/&gt;"&gt;下一页&lt;/a&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:equal&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="./listRecycle.do?pno=&lt;bean:write name='messagePage' property='totalPage'/&gt;"&gt;末页&lt;/a&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/logic:present&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/table&gt; <br /> &lt;/center&gt; <br />&nbsp; &lt;/body&gt; <br />&lt;/html&gt; <br /><br /><strong>问题补充:</strong><br />----------------------- <br />我工程里的lib下包含了jstl-1.2.jar,standard-1.0.6.jar。会不会是jstl版本低了?<br /><strong>问题补充:</strong><br />我换了您说的1.1和1.0但是还是一直有问题一样的错,不过错误已经确定就是出在jstl上。因为我换成struts1标签展示信息没有问题,一用jstl就报错。 <br />您可否给点您使用jstl的建议或者您配置jstl时候导入的jar版本和tld文件,以及需要注意什么,谢谢。<br /><strong>问题补充:</strong><br />重新导入了一次jstl,用的1.1版本,还是存在问题。tomcat里也安了jstl,而且版本一致,tld也在web.xml里配了,不过还是报最早的错。哎~~我还是用struts标签吧。谢谢您的答复。给分。
请教,javascript的拖动div代码
[size=small]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个是51job上的实例:[url]http://www.51job.com/default-area.php?area=0100[/url] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当点选"选择/修改"时,会弹出对话框来让你选择,这个对话框是可以拖动的,现在我有个类似的代码来实现拖动: [code="java"] var oDrag = ""; var ox,oy,nx,ny,dy,dx; function drag(e,o){ var e = e ? e : event; var mouseD = document.all ? 1 : 0; if(e.button == mouseD){ oDrag = o.parentNode; //alert(oDrag.id); ox = e.clientX; oy = e.clientY; } } document.onmouseup = function(){oDrag = "";} document.onmousemove = function(event){dragPro(event);} function dragPro(e){ if(oDrag != ""){ var e = e ? e : event; //$(oDrag).style.left = $(oDrag).offsetLeft + "px"; //$(oDrag).style.top = $(oDrag).offsetTop + "px"; dx = parseInt($(oDrag).style.left); dy = parseInt($(oDrag).style.top); //dx = $(oDrag).offsetLeft; //dy = $(oDrag).offsetTop; nx = e.clientX; ny = e.clientY; $(oDrag).style.left = (dx + ( nx - ox )) + "px"; $(oDrag).style.top = (dy + ( ny - oy )) + "px"; ox = nx; oy = ny; } }[/code] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;但是我看不懂,希望会的朋友,给我解释下,最好给我加上详细的注释. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面是页面调用的div: [code="java"]<div onmousedown="drag(event,this)">[/code] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;谢啦! [/size] [b]问题补充:[/b] 老报错吗?我没有把全部代码贴出来: <code><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>仿51job.com城市选择框特效</title> <style type="text/css"> <!-- body{padding-top:50px;font-size:12px;} h2{margin:0px;padding:0px;font-size:12px;font-weight:bold;} .bton{border:1px solid #CCC;background:#DDD;} .cont{padding:10px;} #main{width:400px;margin:0px auto;} #selectItem{background:#FFF;position:absolute;top:0px;left:center;border:1px solid #000;overflow:hidden;margin-top:10px;width:400px;z-index:2;} #preview{margin:1px;border:1px solid #CCC;} #result{border:1px solid #CCC;margin-top:10px;} .tit{line-height:20px;height:20px;margin:1px;padding-left:10px;} .bgc_ccc{background:#CCC;} .bgc_eee{background:#eee;} .c_999{color:#999} .pointer{cursor:pointer;} .left{float:left;} .right{float:right;} .cls{clear:both;font-size:0px;height:0px;overflow:hidden;} #bg{background:#CCC;filter:alpha(opacity=70);opacity:0.7;width:100%;;position:absolute;left:0px;top:0px;display:none;z-index:1;} .hidden{display:none;} .move{cursor:move;} --> </style> </head> <body> <div id="main"> <input name="button" type="button" class="bton pointer" value="请选择" onclick="openBg(1);openSelect(1)" /> <div id="result"> <div class="tit bgc_eee"> <h2>您已选择的城市汇总</h2> </div> <div class="cont" id="makeSureItem"></div> </div> </div> <div id="bg"></div> <div id="selectItem" class="hidden"> <div class="tit bgc_ccc move" onmousedown="drag(event,this)"> <h2 class="left">请选择城市</h2> <span class="pointer right" onclick="openBg(0);openSelect(0);">[取消]</span> <span class="pointer right" onclick="makeSure();">[确定]</span> </div> <div class="cls"></div> <div class="cont"> <div id="selectSub"> <select name="" onchange="showSelect(this.value)" style="margin-bottom:10px;"> <option value="0">第0层</option> <option value="1">第1层</option> <option value="2">第2层</option> <option value="3">第3层</option> </select> <div id="c00"> <input type="checkbox" name="ck00" onclick="addPreItem()" value="北京" />北京 <input type="checkbox" name="ck00" onclick="addPreItem()" value="福建" />福建 <input type="checkbox" name="ck00" onclick="addPreItem()" value="四川" />四川 <input type="checkbox" name="ck00" onclick="addPreItem()" value="江苏" />江苏 </div> <div id="c01"> <input type="checkbox" name="ck01" onclick="addPreItem()" value="上海" />上海 <input type="checkbox" name="ck01" onclick="addPreItem()" value="云南" />云南 <input type="checkbox" name="ck01" onclick="addPreItem()" value="贵州" />贵州 </div> <div id="c02"> <input type="checkbox" name="ck01" onclick="addPreItem()" value="黑龙江" />黑龙江 <input type="checkbox" name="ck01" onclick="addPreItem()" value="吉林" />吉林 <input type="checkbox" name="ck01" onclick="addPreItem()" value="辽宁" />辽宁 </div> <div id="c03"> <input type="checkbox" name="ck01" onclick="addPreItem()" value="美国" />美国 <input type="checkbox" name="ck01" onclick="addPreItem()" value="阿富汗" />阿富汗 <input type="checkbox" name="ck01" onclick="addPreItem()" value="日本" />日本 </div> </div> </div> <div id="preview"> <div class="tit bgc_eee c_999"> <h2>您已选择的城市</h2> </div> <div class="cont" id="previewItem"></div> </div> </div> <script type="text/javascript"> /* ------使用说明----- */ /* 添加城市方法: 添加组:找到id 是 "selectSub"中select标签下,添加option标签 value属性递增,找到 id 是 "selectSub",按照原有格式添加div,其id属性递增 添加二级傅选矿选项 复制 id 是 "selectSub" 下任意input标签,粘贴在需要添加的位置。 */ var grow = $("selectSub").getElementsByTagName("option").length; //组数 var showGrow = 0;//已打开组 var selectCount = 0; //已选数量 showSelect(showGrow); var items = $("selectSub").getElementsByTagName("input"); //alert(maxItem); //var lenMax = 2; //alert(1); function $(o){ //获取对象 if(typeof(o) == "string") return document.getElementById(o); return o; } function openBg(state){ //遮照打开关闭控制 if(state == 1){ document.getElementById("bg").style.display = "block"; var h = document.body.offsetHeight > document.documentElement.offsetHeight ? document.body.offsetHeight : document.documentElement.offsetHeight; //alert(document.body.offsetHeight); //alert(document.documentElement.offsetHeight); document.getElementById("bg").style.height = h + "px"; } else{ document.getElementById("bg").style.display = "none"; } } function openSelect(state){ //选择城市层关闭打开控制 if(state == 1){ $("selectItem").style.display = "block"; $("selectItem").style.left = ($("bg").offsetWidth - $("selectItem").offsetWidth)/2 + "px"; $("selectItem").style.top = document.body.scrollTop + 100 + "px"; } else{ $("selectItem").style.display = "none"; } } function showSelect(id){ for(var i = 0 ; i < grow ;i++){ $("c0" + i).style.display = "none"; } $("c0" + id).style.display = "block"; showGrow = id; } function open(id,state){ //显示隐藏控制 if(state == 1) $(id).style.display = "block"; $(id).style.diaplay = "none"; } function addPreItem(){ $("previewItem").innerHTML = ""; var len = 0 ; for(var i = 0 ; i < items.length ; i++){ if(items[i].checked == true){ //len++; //if(len > lenMax) //{ // alert("不能超过" + lenMax +"个选项!") // return false; //} var mes = "<input type='checkbox' checked='true' value='"+ items[i].value +"' onclick='copyItem(\"previewItem\",\"previewItem\");same(this);'>" + items[i].value; $("previewItem").innerHTML += mes; //alert(items[i].value); } } } function makeSure(){ //alert(1); //$("makeSureItem").innerHTML = $("previewItem").innerHTML; openBg(0); openSelect(0); copyItem("previewItem","makeSureItem") } function copyHTML(id1,id2){ $(id2).innerHTML = $("id1").innerHTML; } function copyItem(id1,id2){ var mes = ""; var items2 = $(id1).getElementsByTagName("input"); for(var i = 0 ; i < items2.length ; i++){ if(items2[i].checked == true){ mes += "<input type='checkbox' checked='true' value='"+ items2[i].value +"' onclick='copyItem(\"" + id2+ "\",\""+ id1 +"\");same(this);'>" + items2[i].value; } } $(id2).innerHTML = ""; $(id2).innerHTML += mes; //alert($(id2).innerHTML); } function same(ck){ for(var i = 0 ; i < items.length ; i++){ if(ck.value == items[i].value){ items[i].checked = ck.checked; } } } /* 鼠标拖动 */ var oDrag = ""; var ox,oy,nx,ny,dy,dx; function drag(e,o){ var e = e ? e : event; var mouseD = document.all ? 1 : 0; if(e.button == mouseD){ oDrag = o.parentNode; //alert(oDrag.id); ox = e.clientX; oy = e.clientY; } } document.onmouseup = function(){oDrag = "";} document.onmousemove = function(event){dragPro(event);} function dragPro(e){ if(oDrag != ""){ var e = e ? e : event; //$(oDrag).style.left = $(oDrag).offsetLeft + "px"; //$(oDrag).style.top = $(oDrag).offsetTop + "px"; dx = parseInt($(oDrag).style.left); dy = parseInt($(oDrag).style.top); //dx = $(oDrag).offsetLeft; //dy = $(oDrag).offsetTop; nx = e.clientX; ny = e.clientY; $(oDrag).style.left = (dx + ( nx - ox )) + "px"; $(oDrag).style.top = (dy + ( ny - oy )) + "px"; ox = nx; oy = ny; } } </script> </body> </html></code>
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
深析Synchronized关键字(小白慎入,深入jvm源码,两万字长文)
目录一、synchronized基础1.1synchronized的使用1.1示例1.2验证1.2.1 普通方法和代码块中使用this是同一个监视器(锁),即某个具体调用该代码的对象1.2.2 静态方法和代码块中使用该类的class对象是同一个监视器,任何该类的对象调用该段代码时都是在争夺同一个监视器的锁定1.2、synchronized的特点二、synchronized进阶2.1对象头2.2sy
GitHub 总星 4w+!删库?女装?表情包?这些沙雕中文项目真是我每天快乐的源泉!
大家好,我是 Rocky0429,一个喜欢在 GitHub 上瞎逛的蒟蒻… 好看的皮囊千篇一律,有趣的灵魂没有底线。作为全球最大的同性交友网站,GayHub GitHub 上不止有鲜活的代码,秃头的算法,还有很多拥有有(sha)趣(diao)灵魂的宝藏。 还记得我之前给大家介绍的 Sorry 项目嘛,一个可以自己做表情包的项目,这个的沙雕程度在下面这些项目面前只能算弟弟。虽然说沙雕不分国...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
20道你必须要背会的微服务面试题,面试一定会被问到
这篇博客总结了面试中最常见的微服务面试题,相信对你有所帮助。
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
C语言数字图像处理---1.4直方图拉伸和直方图均衡化
本篇将延续上一篇的内容,对直方图进行扩展,讲述直方图拉伸和直方图均衡化两个内容,并通过简单的C语言来实现这两个基础功能,让初学者通俗易懂。
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
没用过这些 IDEA 插件?怪不得写代码头疼
使用插件,可以提高开发效率。对于开发人员很有帮助。这篇博客介绍了IDEA中最常用的一些插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
推荐一些有趣的在线编程游戏
1.Robocode 让坦克们互相博弈的游戏,你可以看到它们飞奔,碾碎一切挡道的东西。机器人配有雷达与火炮,选手在躲避对手进攻的同时攻击对手,以此来较量得分的多少。这个游戏很有意思,曾经令我沉迷… 你可以用Java、Scala、C#等编程语言,编写人工智能程序,驱动机器人。 2.Code Combat Code Combat是一款学习编程的角色扮演游戏。每一关都用任务的形式设立目标,用实时的反馈...
工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
2020年刚刚开始,就意味着离职潮高峰的到来,我身边就有不少人拿着年终奖离职了,而最让我感到意外的,是一位工作十年的数据分析师也离职了,不同于别人的主动辞职,他是被公司炒掉的。 很多人都说数据分析是个好饭碗,工作不累薪资高、入门简单又好学。然而今年34的他,却真正尝到了中年危机的滋味,平时也有不少人都会私信问我: 数据分析师也有中年危机吗?跟程序员一样是吃青春饭的吗?该怎么保证自己不被公司淘汰...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
​两年前不知如何编写代码的我,现在是一名人工智能工程师
全文共3526字,预计学习时长11分钟 图源:Unsplash 经常有小伙伴私信给小芯,我没有编程基础,不会写代码,如何进入AI行业呢?还能赶上AI浪潮吗? 任何时候努力都不算晚。 下面,小芯就给大家讲一个朋友的真实故事,希望能给那些处于迷茫与徘徊中的小伙伴们一丝启发。(下文以第一人称叙述) 图源:Unsplash 正如Elsa所说,职业转换是...
强烈推荐10本程序员必读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
作为一个程序员,内存的这些硬核知识你必须懂!
我们之前讲过CPU,也说了CPU和内存的那点事儿,今天咱就再来说说有关内存,作为一个程序员,你必须要懂的哪那些硬核知识! 大白话聊一聊,很重要! 先来大白话的跟大家聊一聊,我们这里说的内存啊,其实就是说的我们电脑里面的内存条,所以嘞,内存就是内存条,数据要放在这上面才能被cpu读取从而做运算,还有硬盘,就是电脑中的C盘啥的,一个程序需要运行的话需要向内存申请一块独立的内存空间,这个程序本身是存放在...
非典逼出了淘宝和京东,新冠病毒能够逼出什么?
loonggg读完需要5分钟速读仅需 2 分钟大家好,我是你们的校长。我知道大家在家里都憋坏了,大家可能相对于封闭在家里“坐月子”,更希望能够早日上班。今天我带着大家换个思路来聊一个问题...
牛逼!一行代码居然能解决这么多曾经困扰我半天的算法题
春节假期这么长,干啥最好?当然是折腾一些算法题了,下面给大家讲几道一行代码就能解决的算法题,当然,我相信这些算法题你都做过,不过就算做过,也是可以看一看滴,毕竟,你当初大概率不是一行代码解决的。 学会了一行代码解决,以后遇到面试官问起的话,就可以装逼了。 一、2 的幂次方 问题描述:判断一个整数 n 是否为 2 的幂次方 对于这道题,常规操作是不断这把这个数除以 2,然后判断是否有余数,直到 ...
立即提问