jsp页面点击按钮之后弹出一个新查询用户的窗口,然后返回选中的用户id

jsp页面点击按钮之后弹出一个新查询用户的窗口,然后返回选中的用户id,在通过ajax查询返回相对的改变jsp页面的文本框的值
请问

当我按那个查询按钮之后,弹出那个查询窗口,选中相应的值之后,按确定之后会关闭查询窗口(会返回选中的用户id)然后通过ajax查询相应的值,同时把值填到一个text文本域内,希望高手可以帮我解决一下这个怎么做?

1个回答

思路基本是正确的,你的问题只是在于不自信。多鼓捣鼓捣,效果就出来了 :)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jsp怎样实现用按钮触发一个action,同时弹出一个小窗,将action查询的数据显示到小窗上
jsp页面上有一个按钮,按一下会弹出一个小窗口,同时触发一个action,在后台查询数据后再传到本页面弹出的小窗口上。怎么实现这样的功能呢。 我打算修改用户的密码,点击一下修改 ,会将用户的信息查询出来 显示在本页面的一个弹出窗口上,让用户修改后点击保存
JSP里面点击按钮弹出窗口不执行
点击按钮: <button id="btn" >发送AJAX代码</button> script方法: <script src="/js/jquery.min.js"/> <script> $(function () { $("#btn").click(function () { alert("hello btn"); }); }); </script> XML文件取消拦截静态资源 <mvc:resources location="/js/" mapping="/js/**" /> 正在跟着视频学习SpringMvc框架,遇到这个问题一直解决不了,导致后面的东西弄不了,求大神帮帮忙,解决一下
菜鸟求助:如何在JSP页面中弹出窗口
从数据库中查询到了学生的基本信息,每条记录的后面有个“查看详细”的按钮,点击后弹出一个小窗口能将学生的信息显示出来,应该如何做?求各位大神帮忙,最好有个示例,不胜感激……
请问如何用jsp将按钮点击后弹出提示框,延时一定时间后自动关闭,谢谢大家。。。
请问,如何用jsp将按钮点击后弹出提示对话框,然后延时一定时间后就自动关闭,先谢谢大家。。。 [b]问题补充:[/b] 麻烦大家我想要把问题再补充一下,,,如果我所需要的是等待一个参数,得到这个参数后再关闭窗口,因为是在给servlet传参数(传递参数后程序执行),如果参数传递后执行完成,则将窗口关闭(即再将窗口反传给最先传递参数的窗口),那么应该怎样能够实现呢?
关于弹出的页面在window.location之后的返回值问题
各位高手高手高高手: 是这样的。小弟现在做一个项目,我点击一个按钮之后,运用showModalDialog('alarm.jsp','alarm','dialogWidth:720px;dialogHeight:410px;dialogLeft:330px;dialogTop:250px;center:yes;help:no;resizable:no;status:yes')"弹出新的子窗口,之后我在子窗口中点击一个按钮,会调用window.location="../displayAtLeft/alarm.jsp?carSelected="+alarmStrings+"&pageNow=1"; 那么此时,会在另外的页面弹出alarm.jsp,而不是在本窗口页面刷新。请问,我如何让window.location的页面是出现在弹出的该窗口中,而不是另外打开窗口啊?
A.jsp中如何异步修改B.jsp中的元素(如:div)
业务需求: 图片剪裁功能:B.jsp页面上点击设置按钮弹出一个窗口,该窗口引用一个A.jsp页面,在A.jsp页面上将图片截取后提交,需要异步修改B.jsp页面的某处显示图片,不能使页面刷新 这个功能可以实现吗?需要怎么实现?
关于后台action进行逻辑判断后,要弹出窗口提示用户。
情况是这样,当在一个很有很多张单的jsp页面对应一张单点击按钮“删除”,那么在struts2的action里面我会判断这张单,是否能删除。如果能删除,则返回原先的页面如果不能删除,我希望实现返回原先的页面,并用js实现弹出一个窗口来。哪位来指点一下如何实现?
javascipt问题:关闭模态对话框,启动新的窗口
点击按钮后,会跳出一个模态对话框, 代码如下: <a href=\"#\" onclick=\"openwin('/news/qtpage/openZjysCx.jsp','250','500');\" class=\"Menu\"><strong>查询</strong></a> 在这个弹出的模态对话框中显示的页面上有某一个查询按钮。 现在我想做的是,点击该查询按钮后,原来的模态对话框消失,然后使用另一个窗口来显示查询后的结果。该如何做呢? 目前,我查询出来的结果老是在原来的模态对话框中显示,很烦。可不可以不要在原来的模态对话框显示。 请有相关经验的说一下! 补充:点击查询时,是调用后台的action的。我想在action中动态的输出javascipt,关闭窗口,但是没有成功的。 是什么时候调用window.close(); 还是有其他的解决方式呢? [b]问题补充:[/b] 抱歉,描述的不是很对的。是使用下面的代码打开一个新窗口的。代码如下: window.open(pageURL,name,parameters) 在这个弹出的新窗口中显示的页面上有某一个查询按钮。 现在我想做的是,点击该查询按钮后,原来的窗口消失,然后使用另一个窗口来显示查询后的结果。该如何做呢? 目前,我查询出来的结果老是在原来的窗口中显示,很烦。可不可以不要在原来的窗口中显示,另外起一个新的窗口显示最新查询出来的结果
请问如何实现点击按钮刷新已打开页面的功能
用ExtJs实现如下: A.jsp中点击“显示”按钮弹出B.jsp窗口,若在没有关闭B页面前提下再次点击A的“显示”按钮实现B页面整个刷新并自动切换到B页面 如何实现?? 我写的代码 [code="java"] var tabPanel = window.parent.tabs; var lp = tabPanel.getComponent(id); if(!np){ tabPanel.add({ id: id, title: name, html: '<iframe scrolling="auto" frameborder="0" src = "'+ url + '" height="100%" width="100%"></iframe>', closable: true }).show(); } else{ var frmid = tabPanel.items.indexOf(np); tabPanel.frames[frmid].location.reload(); np.show(); } [/code] 在第二次点击时总是提示“frames为空或不为对象”,可是这个页面明明已经有了啊?为什么?请指教 [b]问题补充:[/b] np就是lp手误了 其次我取得是下标 用下标也能定位的吧 不一定要id的 [b]问题补充:[/b] 而且用id我也试过了 还是同样的错误 [b]问题补充:[/b] 这些代码是写在a.jsp中的 要弹出的就是iframe中的b.jsp页面 a页面最外层还有个frame 用Ext.get方法也取不到这个iframe啊 我做tabPanel.frames[frmid]其实就是为了获取这个内嵌的iframe,但是代码跑到frames这边就报错了,请问除了我写的这种方法 还能用什么方法获取这个iframe?加id或name我都试过了 还是同样错 还有,我并没有点击关闭按钮,close应该还没调到吧 [b]问题补充:[/b] 代码太多我不可能全部贴出来的 其实我就是想知道如何获取一个tabPanel里面的iframe整个页面啊。取到了这个页面我才能去做刷新 [b]问题补充:[/b] 对了 说错了一点 tabPanel部分我是单独写在c.jsp中的,这个a.jsp也是c生成的一个iframe中,a和b其实是同级的,应该说c每次生成一个新的iframe。现在a想通过操作父页面c来增加一个兄弟页面b就是这样
jsp:点击按钮下载文档的问题<a href="<%= download %>"></a>
代码为: String appRootPath = InitServlet.getAppRootPath(); String download = appRootPath + "/" + InitServlet.getDLFileDir() + "/" + (String)request.getAttribute("fileName"); 其中InitServlet是servlet的名字 在IE8下直接弹出下载或打开的窗口 ![图片说明](https://img-ask.csdn.net/upload/201509/16/1442380301_30335.png) 在IE8以上的版本及谷歌下直接打开文件,并且文件里的内容是直接输入到页面上的 ![图片说明](https://img-ask.csdn.net/upload/201509/16/1442380376_34262.png) 请问大神们怎么解决使之都能像在IE8下的效果,
为什么两个按钮我随便点击一个按钮都会更新成功,插入按钮我需要的是插入更能而不是更新功能,求大神指教
<%@ page import="com.trs.constants.AuthConstants"%> <%@ page import="org.springframework.validation.FieldError"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>短信管理-修改短信模板</title> <link rel="stylesheet" type="text/css" href="<%=basePath %>images/smsNewAndUpdatePopup.css" /> <link rel="stylesheet" type="text/css" href="<%=basePath %>images/bootstrap.min.css" /> <script src="<%=basePath %>images/jquery.min.js"></script> <script src="<%=basePath %>images/layer/layer.js"></script> </head> <body> <div class="smsNewAndUpdate_Popup"> <div class="titlePopup_head"> <span>修改短信模板</span> <img src="<%=basePath %>images/cls.jpg" class="titlePopup_head_right" onclick="cancelbtn()"> </div> <div class="smsNewAndUpdate_Popup_con"> <div class="smsNewAndUpdate_Popup_main"> <form class="form-horizontal" id="updateSmsTemp" action="<%=basePath%>smsTemp.do?method=updateSmsTemp" method="post"> <input type="hidden" name="stId" value="${requestScope.mrsSmsTemp.stId}"> <fieldset> <div class="popupInfo_left"> <span>名称:</span><input type="text" placeholder="" class="input-xlarge" value="${requestScope.mrsSmsTemp.tempName}" id="tempName" name="tempName"/><span class="required_Info">*</span> </div> <div class="popupInfo_left"> <span>类型:</span> <div class="drop_down"> <select class="border_clr" id="tempType" name="tempType" value="${requestScope.mrsSmsTemp.tempType}"> <option value="1" <c:if test="${requestScope.mrsSmsTemp.tempType eq '1'}">selected</c:if> >自取</option> <option value="2" <c:if test="${requestScope.mrsSmsTemp.tempType eq '2'}">selected</c:if> >邮寄</option> <option value="3" <c:if test="${requestScope.mrsSmsTemp.tempType eq '3'}">selected</c:if>>打卡</option> </select> </div> </div> <div class="popupInfo_left"> <span>内容:</span> <div class="drop_down"> <select class="border_clr" id="ditchId" name="ditchId" value="${requestScope.mrsSmsTemp.ditchId}"> <option value="0" <c:if test="${requestScope.mrsSmsTemp.ditchId eq '0'}">selected</c:if> >渠道选择</option> <option value="1" <c:if test="${requestScope.mrsSmsTemp.ditchId eq '1'}">selected</c:if> >APP</option> <option value="2" <c:if test="${requestScope.mrsSmsTemp.ditchId eq '2'}">selected</c:if> >网站</option> <option value="3" <c:if test="${requestScope.mrsSmsTemp.ditchId eq '3'}">selected</c:if>>纸媒</option> <option value="4" <c:if test="${requestScope.mrsSmsTemp.ditchId eq '4'}">selected</c:if>>杂志</option> </select> </div> <div class="drop_down"> <select class="border_clr" > <option value="标题">标题</option> <option value="作者">作者</option> <option value="时间">时间</option> </select> </div> <button class="border_clr0" onclick="insert()">插入</button> </div> <div class="popupInfo_left"> <textarea class="ml42 popupInfo_right_area" name="tempContent" id="tempContent" cols="57" rows="7" >${requestScope.mrsSmsTemp.tempContent }</textarea><span class="required_Info1">*</span> </div> <div class="popupInfo_left"> <span>说明:</span> <textarea class="popupInfo_right_area" name="tempDescription" id="tempDescription" cols="57" rows="7">${requestScope.mrsSmsTemp.tempDescription }</textarea> </div> </fieldset> </form> <div class="smsNewAndUpdatePopup_footer"> <button class="news-role-btn-success" onclick="successBtn()">确定</button> <button class="news-role-btn" onclick="cancelbtn()">取消</button> </div> </div> </div> </div> <script type="text/javascript"> function insert() { } //关闭弹出层 function cancelbtn() { var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); } function successBtn(){ var tempName = document.getElementById("tempName").value; var tempContent = document.getElementById("tempContent").value; if(tempName==""){ layer.tips('模板名称不能为空!', '#tempName', { tips: 3 }); }else if(tempContent==""){ layer.tips('模板内容不能为空!', '#tempContent', { tips: 3 }); }else{ document.getElementById("updateSmsTemp").submit(); } } </script> <!-- 判断如果返回了错误信息则显示 --> <c:forEach items="${requestScope.hasError}" var="hasError" > <c:set var="_haserror" scope="page" value="${hasError }"/> </c:forEach> <c:if test="${_haserror!=null}"> <script> layer.tips('${_haserror}', '#tempName', { tips: 3 }); </script> </c:if> <% //如果没有错误信息则代表成功,关闭当前窗口 %> <c:if test="${requestScope.success eq 'success'}"> <script> var index = parent.layer.getFrameIndex(window.name); parent.location.reload(); parent.layer.close(index); </script> </c:if> <script type="text/javascript"> (function($){ $.fn.extend({ insertAtCaret: function(myValue){ var $t=$(this)[0]; if (document.selection) { this.focus(); sel = document.selection.createRange(); sel.text = myValue; this.focus(); } else if ($t.selectionStart || $t.selectionStart == '0') { var startPos = $t.selectionStart; var endPos = $t.selectionEnd; var scrollTop = $t.scrollTop; $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length); this.focus(); $t.selectionStart = startPos + myValue.length; $t.selectionEnd = startPos + myValue.length; $t.scrollTop = scrollTop; } else { this.value += myValue; this.focus(); } } }); })(jQuery); $(".border_clr0").change(function(){ $("#tempContent").insertAtCaret($(this).val()); }); </script> </body> </html>
Java新手求助,动态下拉列表
项目用LayUi框架+SpringMvc实现的 点击总体页面右侧的编辑按钮弹出Layui渲染的窗口(另一个jsp页),窗口中的下拉列表想做成从后端数据库表中查出的数据 ![图片说明](https://img-ask.csdn.net/upload/201706/07/1496817409_419946.png) 整体页: ``` <fieldset class="layui-elem-field"> <legend>诉讼指南列表</legend> <div class="layui-field-box layui-form"> <table class="layui-table admin-table"> <thead> <tr> <th style="width: 30px;"><input type="checkbox" lay-filter="allselector" lay-skin="primary"></th> <th>标题</th> <th>日期</th> <th>分类</th> <th>操作</th> </tr> </thead> <tbody id="content"> </tbody> </table> </div> </fieldset> <div class="admin-table-page"> <div id="paged" class="page"> </div> </div> <script type="text/html" id="tpl"> {{# layui.each(d.list, function(index, item){ }} <tr> <td><input type="checkbox" lay-skin="primary"></td> <td>{{ item.heading }}</td> <td>{{ item.dates }}</td> <td>{{ item.litigationguidesubmenu.litigationguidesubmenuname }}</td> <td> <!-- 修改按钮 --> <a href="javascript:;" data-gid="{{ item.gid }}" data-heading="{{ item.heading }}" data-straightmatter="{{ item.straightmatter }}" data-dates="{{ item.dates }}" data-opt="edit" class="layui-btn layui-btn-mini" id="update" onclick="edit(this)">编辑</a> <a href="javascript:;" data-gid="{{ item.gid }}" data-opt="del" id="del" class="layui-btn layui-btn-danger layui-btn-mini" onclick="del(this)">删除</a> </td> </tr> {{# }); }} </script> <script type="text/javascript" src="${pageContext.request.contextPath }/plugins/layui/layui.js"></script> <script> layui.config({ base: 'js/' }); layui.use(['paging', 'form'], function() { var $ = layui.jquery, paging = layui.paging(), layerTips = parent.layer === undefined ? layui.layer : parent.layer, layer = layui.layer, form = layui.form(); paging.init({ /* 省略查询代码 */ complate: function() { //点击编辑按钮弹出编辑窗口 $.post('view/LitigationGuide/forms/updateForm.jsp',{gid:$(this).data('gid'),heading:$(this).data('heading'),straightmatter:$(this).data('straightmatter'),dates:$(this).data('dates'),submenu:$(this).data('submenu')}, function(form) { addBoxIndex = layer.open({ type: 1, title: '修改诉讼指南', content: form, btn: ['保存', '取消'], shade: false, offset: ['100px', '30%'], area: ['800px', '620px'], zIndex: 19950924, maxmin: true, yes: function(index) { //触发表单的提交事件 $('form.layui-form').find('button[lay-filter=edit]').click(); }, success: function(layero, index) { //弹出窗口成功后渲染表单 var form = layui.form(); form.render(); form.on('submit(edit)', function(data) { //参数传入controller $.post('litigationguide/updateLitigationGuide.json',data.field,function(res){ location.reload(); }); return false; }); }, end: function() { addBoxIndex = -1; } }); }); }); }); }, }); </script> ``` updateForm.jsp: ``` <html> ... <body> <!--省略标题、正文、日期等...--> <div class="layui-form-item" style="width:200px; margin-left:110px;"> <select name="fenlei" lay-verify="" > <option value="">请选择文章分类</option> <c:forEach items="${ 后台返回的集合 }" var="s"> <option value="${ s.id }">${ s.值 }</option> </c:forEach> </select> </div> ... </body> ... </html> ``` 小白还求高手指教
FCKeditor js 验证为空问题,多了一个<br/>
对FCKeditor 进行是否为空验证, JS 验证代码如下: [code="java"] function checkAll() { var oEditor = FCKeditorAPI.GetInstance('content'); var checkContent = oEditor.GetXHTML(); if(checkContent == "") { alert("空哎!"); oEditor.Focus(); return false; } } [/code] 表单代码如下: [code="html"] <form action="show.jsp" onsubmit="return checkAll();"> <FCK:editor instanceName="content" basePath="/fckeditor" toolbarSet="garlic" width="600px" height="300px"> </FCK:editor> <input type="submit" value="提交"> </form> [/code] 第一次进入该页面,点击提交按钮,能个正常判断,弹出提示窗口。 但是 再点击之后,就无效了,一看原来 FCKeditor 自动加一个换行的<br />标签。 如何屏蔽掉这样的情况,各位有没有解决方法 或者成功的验证FCKeditor 为空的方法?
jboss服务器问题1
在jboss上面发布一个项目以后,用游览器访问的时候,鼠标点击跳转按钮或者链接 就会自动弹出一个下载窗口,也就是一个另存为窗口! [b]问题补充:[/b] 我的web配置文件里面没mime-type这个属性,项目转向的是一个servlet页面 然后再由这个servlet页面转向一个jsp页面。一点链接本来是要显示出jsp页面内容的,但是服务器弹出来的是一个下载窗口,下载的是servlet页面,并且修改一下文件的扩展名里面的内容是要转向jsp的内容。 [b]问题补充:[/b] <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID" version="2.4"> <display-name>jsp</display-name> <servlet> <description> </description> <display-name> BookServlet</display-name> <servlet-name>BookServlet</servlet-name> <servlet-class> com.baoz.b09j1031.servlet.BookServlet</servlet-class> </servlet> <servlet> <description> </description> <display-name> DeleteBookServlet</display-name> <servlet-name>DeleteBookServlet</servlet-name> <servlet-class> com.baoz.b09j1031.servlet.DeleteBookServlet</servlet-class> </servlet> <servlet> <description> </description> <display-name> EditBookServlet</display-name> <servlet-name>EditBookServlet</servlet-name> <servlet-class> com.baoz.b09j1031.servlet.EditBookServlet</servlet-class> </servlet> <servlet> <description> </description> <display-name> SaveBookServlet</display-name> <servlet-name>SaveBookServlet</servlet-name> <servlet-class> com.baoz.b09j1031.servlet.SaveBookServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>BookServlet</servlet-name> <url-pattern>/BookServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DeleteBookServlet</servlet-name> <url-pattern>/DeleteBookServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>EditBookServlet</servlet-name> <url-pattern>/EditBookServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>SaveBookServlet</servlet-name> <url-pattern>/SaveBookServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
java如何停止当前正在运行的线程,新手求解答
最近想做一个无线数据监控服务端,用java做的,面板Jframe设置了一个Jpanel,我称这个为Jpanel 1 ,在Jpanel 1中我定义了一个多选JCheckbox,有四种监控方式可选:Bluetooth,Wifi,GPRS,Zigbee。还定义了一个JButton,分为开始ON,结束OFF,然后在JPanel 1中定义了JPanel 2,JPanel 2 中我定义了JScrollPane,scrollAndSetCursor用于实现滚动以及光标相关效果,程序运行的大致过程是这样的,我先选择监控方法,(方法是多选的,我想能够同步实现这几个方法),然后点击ON按钮就开始运行服务器程序了, **重点来了** , **我现在的问题是** ,停止按钮OFF不知道怎么设置方法能够让程序停止当前的线程,我想实现的是点击OFF后,当前的监控方式运行全部停止,(就跟刚开始巡行这个程序一样,可以重新开始选择监控方式,在重新点击ON又可以重新运行),现在就是不知道怎么在jbArray[1](ON按钮的监控事件)中定义,感觉自己写的jbArray[0](ON按钮)也有问题。(我其实是想实现这四种方法可以同步运行,互不干扰,多线程运行)希望各位哥哥姐姐帮帮忙,帮我改一改jbArray[0](按钮的监听事件)以及实现jbArray[1](OFF结束当前监控方式线程事件),谢谢各位了,代码稍微有点长,我全贴上来了,辛苦各位了 package SystemTray; import java.awt.AWTException; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Menu; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.Rectangle; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.util.Timer; import java.util.TimerTask; import javax.microedition.io.StreamConnection; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextArea; import BluetoothChatServer.*; import GPRSChatServer.*; import WifiChatServer.*; import ZigbeeChatServer.*; public class SystemTrayDemo extends JFrame { protected JTextArea ta = new JTextArea(20,42); protected Timer timer = new Timer(); protected boolean jbarry = false; protected TrayIcon trayIcon = null; protected SystemTrayDemo(){ this.setTitle("Data monitoring server"); TrayInit(); WinInit(); //取得当前屏幕的宽度和高度 int width=Toolkit.getDefaultToolkit().getScreenSize().width; int height=Toolkit.getDefaultToolkit().getScreenSize().height; //设置窗体大小 this.setSize(610, 470); //设置窗体初始显示的位置 this.setLocation((width-610)/2, (height-470)/2); this.setResizable(false);//设置窗体不可调整大小 //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭方式,关闭窗体时同时结束程序 final JPanel jp1 = new JPanel(); jp1.setLayout(null);//不设置的话是无法设置jp2的大小。等同于窗口的大小。 JPanel jp2=new JPanel(); jp2.setBounds(110,20,480,390); //jp2.setBounds(new Rectangle(110,15,450,350));//设置jp2的左边距、上边距、长度、高度,在jp1没设置setLayout(null);是无效的 //jp2.setBackground(Color.gray);//设置框体的背景色 //jp2.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.BLUE)); //设置框体的边框 final JScrollPane jsp = new JScrollPane(ta); jp2.add(jsp,BorderLayout.CENTER); jp1.add(jp2); /*ta.setText("Start.....\n"); TimerTask task = new TimerTask(){ public void run(){ ta.append("Time: " + (System.currentTimeMillis() / 1000) + "\n"); scrollAndSetCursor(); } }; time.schedule(task, 0, 1000);*/ //super(); //enableEvents(AWTEvent.WINDOW_EVENT_MASK); //创建标签数组 JLabel[] jlArray = {new JLabel("Switch"),new JLabel("Mode")}; //创建复选框数组 final JCheckBox[] jcbArray = {new JCheckBox("Bluetooth",true),new JCheckBox("Wifi"),new JCheckBox("GPRS"), new JCheckBox("Zigbee")}; //创建按钮数组 final JButton[] jbArray = {new JButton("ON"),new JButton("OFF")}; //设置布局管理器 for(int i=0;i<4;i++){ //设置复选按钮的大小位置 jcbArray[i].setBounds(10,185+i*30,80,30); //将复选按钮添加到JPanel中 jp1.add(jcbArray[i]); //设置标签与普通按钮的大小位置 if(i>1){ continue; } //continue后的语句不在执行。。 jlArray[i].setBounds(30,20+i*140,80,30); jbArray[i].setBounds(10,50+i*45,80,30); //将标签与普通按钮添加到JPanel中 jp1.add(jlArray[i]); jp1.add(jbArray[i]); } this.add(jp1); //为普通按钮注册动作事件监听器。 //开始按钮 **感觉这地方有问题,如何修改?????** jbArray[0].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { jbArray[0].setEnabled(jbarry); int result= JOptionPane.showConfirmDialog(null,"Start monitoring program now?","Message",JOptionPane.YES_NO_OPTION); if(result==0){ //是 StringBuffer temp0 = new StringBuffer(); for(int i = 0;i<4;i++){ if(jcbArray[i].isSelected()){ String tmpstr; tmpstr = jcbArray[i].getText()+" monitoring method "; ta.append(tmpstr + "\n"); temp0.append(tmpstr); } } if(temp0.length()==0){ JOptionPane.showMessageDialog(null,"The monitoring method can't be empty!","Message",JOptionPane.WARNING_MESSAGE); jbArray[0].setEnabled(!jbarry); } //蓝牙线程 Thread Bluetooth = new Thread(){ public void run() { if(jcbArray[0].isSelected()){ new BluetoothRemoteServer(); } } }; //Bluetooth.setName("Bluetooth"); //String name0 = Bluetooth.getName(); //ta.append(name0+" start\n"); Bluetooth.start(); //Wifi线程 Thread Wifi = new Thread(){ public void run() { if(jcbArray[1].isSelected()){ new WifiRemoteServer(); } } }; //Wifi.setName("Wifi"); // String name1 = Wifi.getName(); // ta.append(name1+" start\n"); Wifi.start(); //GPRS线程 Thread GPRS = new Thread(){ public void run() { if(jcbArray[2].isSelected()){ new GPRSRemoteServer(); } } }; //GPRS.setName("GPRS"); //String name2 = GPRS.getName(); //ta.append(name2+" start\n"); GPRS.start(); //Zigbee线程 Thread Zigbee = new Thread(){ public void run() { if(jcbArray[3].isSelected()){ new ZigbeeRemoteServer(); } } }; //Zigbee.setName("Zigbee"); //String name3 = Zigbee.getName(); //ta.append(name3+" start\n"); Zigbee.start(); } if(result==1){ //否 jbArray[0].setEnabled(!jbarry); } } }); //结束按钮 **如何实现点击jbArray[1]后能够停止前面jbArray[0]中选择的监控方式的线程?????** jbArray[1].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int result= JOptionPane.showConfirmDialog(null,"End monitoring program now?","Message",JOptionPane.YES_NO_OPTION); if(result==0){ //是 for(int i=0; i<jcbArray.length; i++){ jcbArray[i].setSelected(false); } ta.setText(null); //后续功能完善 jbArray[0].setEnabled(!jbarry); } if(result==1){ //否 } } }); } //托盘的功能选项设置 public void TrayInit(){ if(SystemTray.isSupported()){ //检查当前系统是否支持系统托盘 SystemTray tray = SystemTray.getSystemTray();//获取表示桌面托盘区的 SystemTray 实例。 URL imageUrl=SystemTrayDemo.class.getResource("java.png"); ImageIcon icon = new ImageIcon(imageUrl); //Image image = Toolkit.getDefaultToolkit().getImage("D:\\kissjava.gif"); PopupMenu popupMenu = new PopupMenu(); //为托盘添加右键菜单 MenuItem exitItem = new MenuItem("Exit"); //退出exitItem按钮 exitItem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ try{ System.exit(0); }catch(Exception ex) { ex.printStackTrace(); } } }); popupMenu.add(exitItem); //创建带指定图像、工具提示和弹出菜单的 TrayIcon trayIcon = new TrayIcon(icon.getImage(), "System is running", popupMenu); trayIcon.addMouseListener(new java.awt.event.MouseAdapter(){ @Override public void mouseClicked(MouseEvent e) { if(e.getClickCount()==2){ showIT(true); } } }); try{ tray.add(trayIcon); // 将 TrayIcon 添加到 SystemTray。 } catch (AWTException e) { System.err.println(e); } }else{ JOptionPane.showMessageDialog(null,"The operating system does not support tray","Message",JOptionPane.ERROR_MESSAGE); } } //窗体的菜单功能选项设置 public void WinInit(){ JMenuBar menubar = new JMenuBar();//为窗体添加菜单功能 setJMenuBar(menubar); //开关option选项 /*前端添加小图标 * JMenu option = new JMenu("开关"); * Icon startIcon = new ImageIcon("image/bluetooth.png"); JMenuItem start = new JMenuItem("开始",startIcon); */ //设置setting选项 JMenu setting = new JMenu("Setting"); JMenu language = new JMenu("Language"); setting.add(language); JMenuItem language1 = new JMenuItem("中文"); language.add(language1); JMenuItem language2 = new JMenuItem("English"); language.addSeparator(); language.add(language2); JMenu update = new JMenu("Update"); setting.addSeparator(); setting.add(update); JMenuItem update1 = new JMenuItem("Version update"); update.add(update1); update1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null,"please send the mail to zhouwenquan2012552061@Gmail.com","Message",JOptionPane.PLAIN_MESSAGE); } }); //关于help选项 JMenu help = new JMenu("Help"); JMenuItem about = new JMenuItem("About"); help.add(about); //后续功能完善 about.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null," Copyright @2013 popcorn\n All Right Reserved\n author popcorn\n version 1.0","Message",JOptionPane.PLAIN_MESSAGE); } }); menubar.add(setting); menubar.add(help); } /** 该方法用于实现滚动以及光标相关效果 */ public void scrollAndSetCursor(){ // ta.requestFocus(); ta.setSelectionStart(ta.getText().length()); } public void showIT(boolean visable){ if(this.isVisible() != visable) this.setVisible(visable); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable(){ public void run(){ new SystemTrayDemo().setVisible(true);//设置窗体显示 } }); } }
模态窗口提交能不能提交到action
这两天写了一个ssh,要求如下:再页面上点击“订单录入”,弹出模态窗口,这个模态床口上有个“保存”按钮,点击之怎么能让这个表单提交到自己定义的action中呢?并且成功后刷新这个模态窗口?我刚学模态窗口,啥也不会,请大家多多指教。 注: 我写的代码: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'addmerych.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type="text/javascript"> function showMain(){ window.close(); } </script> </head> <body> <form id="merychAdd" action="/merychAdd.do" method="post"> <table> <tr> <td>名称:</td> <td><input type="text" name="name"></td> <td>代码:</td> <td><input type="text" name="code"></td> </tr> <tr> <td>厂商:</td> <td width="200px"><input type="text" name="factory"></td> </tr> <tr> <td>包装:</td> <td><input type="text" name="packagetype"/></td> <td>价格:</td> <td><input type="text" name="price"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="保存" onclick="saveMerych()"></td> <td colspan="2"><input type="button" value="关闭" onclick="showMain()"></td> </tr> </table> </form> </body> </html> 我点了保存后,系统提示我找不到“merychAdd.do” 在这请教各位,怎么才能提交这个表单呢?
extjs3.4 window组件第一次打开后关闭正常,第二次打开后就不能关闭了
<p> </p> <pre name="code" class="js"><span style="color: #ff0000;">在页面上有个grid表格 里面有个增加按钮,点击增加按钮时弹出一个窗口,填写相关信息 第一次点击增加按钮,窗口打开,可以关闭,第二次点击增加按钮后,弹出的窗口就不能关闭了. 截图是两次打开窗口的截图,第二次截图还多了几个下拉框 ,用的是extjs3.4的版本,改成extjs2.0的版本就正常了,是不是两个版本之间有什么区别,求指导</span> grid代码 var Record CommonGrid = Ext .extend( Ext.grid.GridPanel, { // saveFlag : true, constructor : function(cfg) { var cfg = cfg || {}; Ext.apply(this, cfg); var data = [ [ '10.21.34.56', '华为设备', '5680', 'aa', '1', '1', '1', '1', '1', '1' ], [ '10.21.34.56', '中兴设备', 'C200', 'aa', '2', '1', '1', '1', '1', '1' ], [ '10.21.34.56', '烽火设备', 'AN5616', 'aa', '2', '2', '1', '1', '1', '1' ], [ '10.21.34.56', '贝尔设备', 'AN5616', 'aa', '3', '3', '1', '1', '1', '1' ] ]; var Record = Ext.data.Record.create([ { name : 'logicid' }, { name : 'logiccode' }, { name : 'netproId' }, { name : 'logicname' }, { name : 'logicdec' }, { name : 'netproname' }, { name : 'netmodel' }, { name : 'bmodel' }, { name : 'ip' }, { name : 'port' } ]); this.NameCombo = new Ext.form.ComboBox({ id : 'nameCombo', emptyText : "请选择...", isFormField : true, width : 100, mode : 'local', allowBlank : false,// 不允许为空 blankText : "不能为空",// forceSelection : true, triggerAction : 'all', fieldLabel : "逻辑网元名称", displayField : 'text', listWidth : 100, valueField : 'id', store : new Ext.data.SimpleStore({ data : [ [ '1', '合肥' ], [ '2', '芜湖' ], [ '3', '安庆' ], [ '4', '蚌埠' ] ], fields : [ 'id', 'text' ] }), editable : false,// 不允许输入 }); this.ClassCombo = new Ext.form.ComboBox({ id : 'classCombo', emptyText : "请选择...", isFormField : true, width : 100, mode : 'local', allowBlank : false,// 不允许为空 blankText : "不能为空",// forceSelection : true, triggerAction : 'all', fieldLabel : "网元协议名称", displayField : 'text', listWidth : 100, valueField : 'id', store : new Ext.data.SimpleStore({ data : [ [ '1', '合肥' ], [ '2', '芜湖' ], [ '3', '安庆' ], [ '4', '蚌埠' ] ], fields : [ 'id', 'text' ] }), editable : false,// 不允许输入 }); this.store = new Ext.data.Store({ // proxy : new Ext.data.HttpProxy({url : // 'getProcessRuleList.action', method : 'POST'}), // reader : new Ext.data.JsonReader( // {totalProperty:'total',root:'root'}, // [{name : 'id'},{name : 'busiTypeId'}, {name : // 'busiType'}, {name // : 'faultId'}, // {name : 'faultName'}, {name : 'accessWay'},{name // : 'portType'}, // {name : 'processName'}, // {name : 'processchname'}, {name : 'createTime'}] // ) autoLoad : true, proxy : new Ext.data.MemoryProxy(data),// 获得本地数据 reader : new Ext.data.ArrayReader( // 解析数据 {}, Record ) }); CommonGrid.superclass.constructor .call( this, { title : '网元信息列表', id : '_processRuleConfig', region : 'north', height : 300, border : false, stripeRows : true, split : true, /* * viewConfig:{ forceFit:true }, */ cm : new Ext.grid.ColumnModel( [ new Ext.grid.RowNumberer(), { header : '逻辑网元ID', align : 'center', dataIndex : 'logicid', width : 150, hidden : true }, { header : '逻辑网元编码', align : 'center', dataIndex : 'logiccode', width : 150, hidden : true }, { header : '网元协议ID', align : 'center', dataIndex : 'netproId', width : 150, hidden : true }, { header : '逻辑网元名称', align : 'center', dataIndex : 'logicname', width : 150, sortable : true }, { header : '逻辑网元描述', align : 'center', dataIndex : 'logicdec', width : 150, sortable : true }, { header : '网元协议名称', align : 'center', dataIndex : 'netproname', width : 150, renderer : this.detailInfoShow, sortable : true }, { header : '网元交互模式', align : 'center', dataIndex : 'netmodel', width : 150, sortable : true }, { header : '部署模式', align : 'center', dataIndex : 'bmodel', width : 150, sortable : true }, { header : '服务IP', align : 'center', dataIndex : 'ip', width : 150, sortable : true }, { header : '服务端口', align : 'center', dataIndex : 'port', width : 150, sortable : true } ]), bbar : new Ext.PagingToolbar( { pageSize : 10, store : this.store, firstText : '第一页', nextText : '下一页', prevText : '上一页', refreshText : '刷新', lastText : '最后一页', beforePageText : '当前', afterPageText : '页/共{0}页', displayInfo : true, displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条', doLoad : function(C) { // 为了点击下一页传递参数用 var B = {}; var D = {}; A = this.paramNames; B[A.start] = C; B[A.limit] = this.pageSize; if (this .fireEvent( "beforechange", this, B) !== false) { this.store .load({ params : B, callback : function( records, option, success) { if (success) { Ext .getCmp("_processRuleConfig").store .load({ params : B }); } } }); } }, emptyMsg : "没有记录", items : [ ' ', { text : '新增', iconCls : 'new', handler : this.doAdd, scope : this }, '-', { text : '修改', iconCls : 'update', handler : this.doModify, scope : this }, '-', { text : '删除', iconCls : 'delete', handler : this.doDelete, scope : this }, '-', { text : '配置命令模板', iconCls : 'update', handler : this.doCommand, scope : this }, '-', { text : '查看物理网元', iconCls : 'find', handler : this.doNet, scope : this } ] }), tbar : new Ext.Toolbar( { items : [ '逻辑网元名称:', this.NameCombo, '-', '网元协议名称:', this.ClassCombo, '-', { text : '查询', iconCls : 'find', handler : this.doQuery, scope : this }, { text : '重置', iconCls : 'find', handler : this.doClear, scope : this } ] }) }); this.initListener(); }, initListener : function() { this.addListener("render", function() { this.loadMask = new Ext.LoadMask(Ext.getBody(), { msg : '正在载入数据,请稍候...' }); this.store.load({ params : { start : 0, limit : 5 } }); }, this); this.addListener("rowdblclick", function(grid, index, e) { this.doModify(); }, this); this.addListener("cellclick", function(grid, index, e) { this.doclick(); }, this); }, detailInfoShow : function(val, medadata, record, rowIndex, colIndex, store) { // var testOrderId = record.get('testOrderId'); return "&lt;a href='http://localhost:8080/extjs/jsp/netprotocol.jsp'&gt;" + val + "&lt;/a&gt;"; }, <span style="color: #ff0000;">//窗口弹出代码</span> <span style="color: #ff0000;"> doAdd : function() { if(Ext.getCmp('apWindow')!=null){ Ext.getCmp('apWindow').close(); var logicWindow = new LogicWindow({ pview : this }); logicWindow.show(); }else{ var logicWindow = new LogicWindow({ pview : this }); logicWindow.show(); } </span> }, doCommand : function() { // 举例说明 window .open( "http://localhost:8080/extjs/jsp/netprotocol.jsp", "_blank"); }, doNet : function() { // 举例说明 window .open( "http://localhost:8080/extjs/jsp/netprotocol.jsp", "_blank"); }, doclick : function() { var record = this.getSelectionModel().getSelected(); var logicname = record.get("logicname"); this.ppanel.configRegion.rule.logicname .setValue(logicname); this.ppanel.configRegion.rule.logicname.disable(); }, doModify : function() { var record = this.getSelectionModel().getSelected(); if (record == null) { Ext.Msg.alert('系统提示', padBlank + padBlank + "请选择一条记录!" + padBlank + padBlank); return; } var logicWindow = new LogicWindow({ pview : this }); logicWindow.show(); logicWindow.logicForm.loadData(record); }, doDelete : function() { var record = this.getSelectionModel().getSelected(); if (record == null) { Ext.Msg.alert('系统提示', padBlank + padBlank + "请选择一条记录!" + padBlank + padBlank); return; } this.store.remove(record); } }); <span style="color: #ff0000;">窗口代码</span> /** * 逻辑网元信息配置窗口 */ LogicWindow = Ext.extend(Ext.Window, { constructor : function(cfg) { var cfg = cfg || {}; Ext.apply(this, cfg); this.logicForm = new RuleCommand({ pwin : this }); <span style="color: #ff0000;"> LogicWindow.superclass.constructor.call(this, { title : "逻辑网元信息配置", id : 'apWindow', resizable : false, autoScroll : true, width : 1100, height : 300, // bodyStyle : 'padding:5px 0px 5px 5px', plain : true, modal : true, closeAction : 'close', closable:true, items : [ this.logicForm ], // buttonAlign : 'center', // buttons : [ { // text : '添加', // iconCls : 'save', // handler : this.doSave, // scope : this // }, { // text : '修改', // iconCls : 'cancel', // handler : this.doModify, // scope : this // }, { // text : '重置', // iconCls : 'find', // handler : this.doClear, // scope : this // } ] }); },</span> doClose : function() { //this.pwin.close(); }, // /** // * 保存信息 // */ doSave : function() { var o = this.logicForm.getData(); if (o == null) { Ext.MessageBox.alert("系统提示", padBlank + "请完善相关信息!" + padBlank); return; } //this.store.insert(n, new Ext.data.Record(data)); var n=this.pview.store.getCount(); this.pview.store.insert(n, new Ext.data.Record(o)); this.doClose(); }, // /** // * 添加公共信息 // */ // doInsert : function(o){ // var that = this ; // ResApManager.saveAp(o,{ // callback:function(data){ // if(data == -1) { // Ext.MessageBox.alert("系统提示", padBlank + "添加失败!" +padBlank); // } else { // that.doClose(); // Ext.MessageBox.alert("系统提示", padBlank + "添加成功!" +padBlank); // that.pview.getStore().reload(); // } // } // }); // }, // /** // * 修改公共信息 // */ // doUpdate : function(o){ // var that = this; // ResApManager.updateAp(o,{ // callback: function(data) { // if(data == -1) { // Ext.MessageBox.alert("系统提示:", padBlank + "修改失败!" + padBlank); // } else { // that.doClose(); // Ext.MessageBox.alert("系统提示", padBlank + "修改成功!" + padBlank); // that.pview.getStore().reload(); // } // } // }); // } }); /** * @author 网元协议配置 */ // var update_Id = null; /** * @author 网元协议配置 */ // var update_Id = null; RuleCommand = Ext.extend(Ext.form.FormPanel, { constructor : function(cfg) { var cfg = cfg || {}; Ext.apply(this, cfg); this.initialItems(); RuleCommand.superclass.constructor.call(this, { layout : 'form', region : 'center', height : '250', border : false, frame : true, split : true, // viewConfig : { // forceFit : true // }, autoScroll : true, buttonAlign : 'center', buttons : [ { text : '添加', iconCls : 'save', handler : this.doSave, scope : this }, { text : '修改', iconCls : 'cancel', handler : this.doModify, scope : this }, { text : '重置', iconCls : 'find', handler : this.doClear, scope : this } ] // bodyStyle:'margin: 10 0 5px 10px;', }); }, initialItems : function() { this.logicname = new Ext.form.TextField({ fieldLabel : "逻辑网元名称", width : 130, length : 10, allowBlank : false, // 不允许为空 blankText : '该项不能为空!'// 显示为空的提示信息 }); this.logiccode = new Ext.form.TextField({ fieldLabel : "逻辑网元编码", width : 130, length : 10, allowBlank : false, // 不允许为空 blankText : '该项不能为空!'// 显示为空的提示信息 }); this.logicdec = new Ext.form.TextField({ fieldLabel : "逻辑网元描述", width : 130, length : 10, allowBlank : false, // 不允许为空 blankText : '该项不能为空!'// 显示为空的提示信息 }); this.ip = new Ext.form.TextField({ fieldLabel : "服务IP", width : 130, length : 10, allowBlank : false, // 不允许为空 blankText : '该项不能为空!'// 显示为空的提示信息 }); this.port = new Ext.form.TextField({ fieldLabel : "服务端口", width : 130, length : 10, allowBlank : false, // 不允许为空 blankText : '该项不能为空!'// 显示为空的提示信息 }); this.netproname = new Ext.form.ComboBox({ id : 'netproname', emptyText : "请选择...", isFormField : true, width : 130, mode : 'local', allowBlank : false,// 不允许为空 blankText : "不能为空",// forceSelection : true, triggerAction : 'all', fieldLabel : "网元协议名称", displayField : 'text', listWidth : 100, valueField : 'id', store : new Ext.data.SimpleStore({ data : [ [ '1', '合肥' ], [ '2', '芜湖' ], [ '3', '安庆' ], [ '4', '蚌埠' ] ], fields : [ 'id', 'text' ] }), editable : false,// 不允许输入 }); this.netmodel = new Ext.form.ComboBox({ id : 'netmodel', emptyText : "请选择...", isFormField : true, width : 130, mode : 'local', allowBlank : false,// 不允许为空 blankText : "不能为空",// forceSelection : true, triggerAction : 'all', fieldLabel : "网元交互模式", displayField : 'text', listWidth : 100, valueField : 'id', store : new Ext.data.SimpleStore({ data : [ [ '1', '合肥' ], [ '2', '芜湖' ], [ '3', '安庆' ], [ '4', '蚌埠' ] ], fields : [ 'id', 'text' ] }), editable : false,// 不允许输入 }); this.bmodel = new Ext.form.ComboBox({ id : 'bmodel', emptyText : "请选择...", isFormField : true, width : 130, mode : 'local', allowBlank : false,// 不允许为空 blankText : "不能为空",// forceSelection : true, triggerAction : 'all', fieldLabel : "部署模式", displayField : 'text', listWidth : 100, valueField : 'id', store : new Ext.data.SimpleStore({ data : [ [ '1', '合肥' ], [ '2', '芜湖' ], [ '3', '安庆' ], [ '4', '蚌埠' ] ], fields : [ 'id', 'text' ] }), editable : false,// 不允许输入 }); this.fieldSet = new Ext.form.FieldSet({ title : '网元协议配置', width : 1000, height : 150, style : 'margin: 10 0 5px 10px;', items : [ { xtype : 'panel', layout : 'column', style : 'margin: 10px 0px 0px 0px;', items : [ { columnWidth : .3, layout : 'form', labelWidth : 120, items : this.logiccode }, { columnWidth : .3, layout : 'form', labelWidth : 120, items : this.logicname }, { columnWidth : .3, layout : 'form', labelWidth : 120, items : this.logicdec } ] }, { xtype : 'panel', layout : 'column', style : 'margin: 0px 0px 0px 0px;', items : [ { columnWidth : .3, layout : 'form', labelWidth : 120, items : this.netproname }, { columnWidth : .3, layout : 'form', labelWidth : 120, items : this.netmodel }, { columnWidth : .3, layout : 'form', labelWidth : 120, items : this.bmodel } ] }, { xtype : 'panel', layout : 'column', items : [ { columnWidth : .5, layout : 'form', labelWidth : 120, style : 'margin: 0px 0px 0px 0px;', items : this.port }, { columnWidth : .5, layout : 'form', labelWidth : 120, style : 'margin: 0px 0px 0px 0px;', items : this.ip } ] } ] }); this.items = [ this.fieldSet ]; // this.items = [ // // // // this.netComition,this.alarmContent,this.neNameCode,this.suceess,this.commandbak,this.neNameClass,this.flag, // this.fault,this.falgs]; // }, loadData : function(o) { this.logiccode.setValue(o.data.logiccode); this.logicname.setValue(o.data.logicname); this.logicdec.setValue(o.data.logicdec); this.netproname.setValue(o.data.netproname); this.netmodel.setValue(o.data.netmodel); this.bmodel.setValue(o.data.bmodel); this.port.setValue(o.data.port); this.ip.setValue(o.data.ip); }, getData : function() { if (this.getForm().isValid()) { var logiccode = this.logiccode.getValue(); var logicname = this.logicname.getValue(); var logicdec = this.logicdec.getValue(); var netproname = this.netproname.getRawValue(); var netmodel = this.netmodel.getRawValue(); var bmodel = this.bmodel.getRawValue(); var port = this.port.getValue(); var ip = this.ip.getValue(); var o = { logicname : logicname, logicdec : logicdec, netproname : netproname, netmodel : netmodel, bmodel : bmodel, port : port, ip : ip }; return o; } else { Ext.Msg.alert("系统提示", "请完善相关信息"); return; } } }); </pre>   <p> </p>
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给袈...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库 回到首页 目录: Python语言高频重点汇总 目录: 1. 函数-传参 2. 元类 3. @staticmethod和@classmethod两个装饰器 4. 类属性和实例属性 5. Python的自省 6. 列表、集合、字典推导式 7. Python中单下划线和双下划线 8. 格式化字符串中的%和format 9. 迭代器和生成器 10...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
ES6基础-ES6的扩展
进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展。 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符串的扩展: 模板字符串,部分新的方法,新的unicode表示和遍历方法: 部分新的字符串方法 padStart,padEnd,repeat,startsWith,endsWith,includes 字...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
web前端javascript+jquery知识点总结
Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。 浏览器对象模型(Br
Qt实践录:开篇
本系列文章介绍笔者的Qt实践之路。
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
一条链接即可让黑客跟踪你的位置! | Seeker工具使用
搬运自:冰崖的部落阁(icecliffsnet) 严正声明:本文仅限于技术讨论,严禁用于其他用途。 请遵守相对应法律规则,禁止用作违法途径,出事后果自负! 上次写的防社工文章里边提到的gps定位信息(如何防止自己被社工或人肉) 除了主动收集他人位置信息以外,我们还可以进行被动收集 (没有技术含量) Seeker作为一款高精度地理位置跟踪工具,同时也是社交工程学(社会工程学)爱好者...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
Python学习笔记(语法篇)
本篇博客大部分内容摘自埃里克·马瑟斯所著的《Python编程:从入门到实战》(入门类书籍),采用举例的方式进行知识点提要 关于Python学习书籍推荐文章 《学习Python必备的8本书》 Python语法特点: 通过缩进进行语句组织 不需要变量或参数的声明 冒号 1 变量和简单数据结构 1.1 变量命名 只能包含字母、数字和下划线,且不能以数字打头。 1.2 字符串 在Python中,用引号...
[Pyhon疫情大数据分析] 一.腾讯实时数据爬取、Matplotlib和Seaborn可视化分析全国各地区、某省各城市、新增趋势
思来想去,虽然很忙,但还是挤时间针对这次肺炎疫情写个Python大数据分析系列博客,包括网络爬虫、可视化分析、GIS地图显示、情感分析、舆情分析、主题挖掘、威胁情报溯源、知识图谱、预测预警及AI和NLP应用等。第一篇文章将分享腾讯疫情实时数据抓取,获取全国各地和贵州省各地区的实时数据,并将数据存储至本地,最后调用Maplotlib和Seaborn绘制中国各地区、贵州省各城市、新增人数的图形。希望这篇可视化分析文章对您有所帮助!
相关热词 c#如何定义数组列表 c#倒序读取txt文件 java代码生成c# c# tcp发送数据 c#解决时间格式带星期 c#类似hashmap c#设置istbox的值 c#获取多线程返回值 c# 包含数字 枚举 c# timespan
立即提问