JAVA获取JSP中的某个值

在网页中有如下一段代码:
function freshId(){var xmlHttp;if (window.ActiveXObject) {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");} else if (window.XMLHttpRequest) {xmlHttp = new XMLHttpRequest();} else {alert("请更换浏览器!");return;}xmlHttp.open("GET", "getcode.jsp", true);xmlHttp.onreadystatechange = function () {if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {var data=JSON.parse(xmlHttp.responseText);var strSrc = 'data:image/png;base64,' +data.vda;document.getElementById("codeId").value=data.vid;document.getElementById("imgGv").src=strSrc;}};xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttp.send("{\"vty\":\"vtext\"}");} 

我要写一个模拟登录的,但是传递参数的时候卡在了codeID的这个地方,传送HTTP请求的时候回发送codeID过去,请问一下,使用JAVA要怎么样获取到这个codeID

5个回答

最简单不用动脑子的办法是用fiddler看下,浏览器是怎么提交的,照着写就好了。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复月燕如: 你网页中有个叫codeID的隐藏表单
大约 4 年之前 回复
rabbitsfish
月燕如 用那个东西看过了,里面会传递一个codeID 可是这个值在JS中是那样算出来的,可是用JAVA我完全不知道怎么算
大约 4 年之前 回复

data.vda;document.getElementById("codeId").value=data.vid这里可以看出codeId是从data去取的
而var data=JSON.parse(xmlHttp.responseText);可以看到它是一个ajax请求返回的。现在就去找找这个ajax请求后台的实现就可以了
(如果可以找 的话),

模拟登录 ,你就模拟浏览器,看他需要哪些参数,你模拟数据作http提交。

应该是一个ajax请求,,

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jsp连sql server获取表中的某个值 并连接这个值的数据库
目前是连接到一个数据库A 根据A里的表判断登陆 但这个表里还有一个数据库B的连接字符串 类似这样 Server=192.27.94.10,11008;database=C_Model;user id=User;pwd=Pwd;Connect Timeout=30 怎么获取这个表内的字符串并连接到这个数据库B
怎么获取jsp页面中,某一字段的所有值,判断值是否包含某一个字符串!
![获取页面中类型的所有值,判断这些值是否包含某个字符串,如果包含,则对应的操作按钮,就隐藏](https://img-ask.csdn.net/upload/201710/26/1508984558_99389.png)
JAVA内存问题。
JDK版本:1.6.0_19 服务器:tomcat 测试项目:一个简单的web程序。里面有个systemInfo.jsp页面。,调用了Runtime的totalMemory(),maxMemory(),freeMemory() 以及当前使用的内存totalMemory()-freeMemory(),CPU核数availableProcessors() 测试目的:查看JSP打出来的内存大小和任务管理器里面的JAVA进程的大小是否一样。 详情: 1:以前一直没注意,这几天突然发现windows的任务管理器 里面的内存和程序真正运行的时候是不一样的。当时就迷惑了。JAVA启动后就是一个JAVA进程,我们都知道,里面包含了JAVA虚拟机还有一些其他的东西。所以任务管理器里面的内存要比我们用程序查看的时候大,因为程序里面只显示的是JAVA虚拟机的内存。这是我的理解。不知对否。 2:为什么我程序里面调用runtime.maxMemory()打印出来的最大内存数是519m(519.....K),而我设置的-Xmx是512M,好像有3M不见了。我认为可能是虚拟机不会准确的去抓去512M,只能在512M左右,不知这样理解对否。 3:让我郁闷的就是:如我前面所说,我的内存最大设置了512M,初始化内存是64M。所以totalMemory()这里的内存打出来差不多也是64M,但是任务管理器里面的JAVA内存大小是89M(程序运行5分钟),89M比我们JAVA虚拟机的内存多了25M的样子,这25M可能是TOMCAT启动后,其他东西的使用。但是和我开始想的不一样。我认为JAVA这个进程应该是512M才对,不然JAVA怎么保证他的最大内存可使用呢?如果其他程序把内存耗尽,那么这个时候JAVA虚拟机要向内存再申请的时候,就不是申请不了了吗? 4:有谁告诉一下如何用JAVA查看某个进程(不一定是JAVA的进程,比如查看QQ的进程)的内存使用情况。 5: 一个tomcat里面部署多个程序,应该就相当于一个虚拟机里面有多个程序运行吧。。这几个程序共享一个虚拟机。那么有什么办法获取一个程序的当前占用的内存吗?
如何实现类似浏览器调试中的网络数据监控功能?
各位好 本人想实现在javaweb项目中,进入某个jsp页面,将这个jsp页面加载的情况保存到excel中,加载情况就浏览器自带的网络数据监控功能一致,包含具体资源,加载时间等,如下图。 有没有办法在js或者java中直接调用火狐或者IE的这种功能获取加载完成后的这种资源情况就行了,不需要实时的,包含具体资源、大小、耗时就行了 或者有没有什么开源的jar包工具,能引入项目调用 不能使用外部软件输入地址等方式获取, 多谢各位了!![图片说明](https://img-ask.csdn.net/upload/201509/09/1441786768_478166.jpg)
请问如下的功能应该怎样实现呢?
JSP页面上有很多链接,我点击其中某个链接后,如何设计代码实现获取其在数据库中id字段的值。Servlet,ajax
JSP搜索联想框,新手求指教。
不是用的SSH框架,DAO用JDBC,项目赶工,DAO和Service整合在了一起,我是半路插入的~各位大神先别吐槽……咱先把问题解决再美化~谢谢 页面结构如下 ``` <input name="accountName" id="accountName" class="yhgl_ser required inputElem" onkeyup="getLinkData();" value="<%StringHelper.filterHTML(out, request.getParameter("accountName"));%>" /> <div id="popup" style="position: absolute;"> <table width="100%" bgcolor="#fffafa"> <tbody id="popupBody"></tbody> </table> </div> ``` JS代码如下(借鉴了很多网上的JS方法) ``` <script type="text/javascript"> function getLinkData() { var popupDiv = document.getElementById("info");//获得对应的div对象 var popupBody = document.getElementById("popupBody");//获得对应的tbody对象 var linkDataProperty = document.getElementById("accountName"); //获得对应的输入框对象 clearModels();//清除联想输入提示框的内容 //利用ajax获取后台的模糊查询的数据,并且封装成下拉列表的形式展现出来 $.ajax({ type : "post",//提交的方法为post //对应的Action提交的路径 url : "<%configureProvider.format(out, URLVariable.SEARCH_ACCOUNT);%>", data:{linkDataProperty:linkDataProperty.value},//从前台传递到后台的查询语句的参数 dataType : "json", //从Action中返回的数据的类型为json类型的 error:function(){ alert("没有对应的数据,请查看输入的查询条件!"); }, success : function(data) {//当Ajax提交成功时调用的方法 if(data.length==0){return;} setOffsets();//设置联想输入下拉列表提示框的位置 var tr,td,text; for (var i = 0; i < data.length; i++) {//根据返回的值,手动的拼tbody的内容 text = document.createTextNode(data[i].linkDataProperty);//从Action中返回的数据中取出linkDataProperty的值 td = document.createElement("td");//创建一个td的对象 tr = document.createElement("tr");//创建一个tr的对象 td.mouseOver = function(){this.className="mouseOver;"}; td.mouseOut = function(){this.className="mouseOut;"}; td.onclick = function(){populateModel(this)};//单击td是的方法为populateModel td.appendChild(text); tr.appendChild(td); popupBody.appendChild(tr); } }}); //点击下拉列表中的某个选项时调用的方法 function populateModel(cell) { clearSelect(); linkDataProperty.value = cell.firstChild.nodeValue; //initOtherData(linkDataProperty.value);利用输入框中的数据调用其他方法,初始化其他数据 clearModels();//清除自动完成行 } //清除自动完成行,只要tbody有子节点就删除掉,并且将将外围的div的边框属性设置为不可见的 function clearModels() { while (popupBody.childNodes.length > 0) { popupBody.removeChild(popupBody.firstChild); } popupDiv.style.border = "none"; } //设置下拉列表的位置和样式 function setOffsets() { var width = linkDataProperty.offsetWidth;//获取linkDataProperty输入框的相对宽度 var left = getLeft(linkDataProperty); var top = getTop(linkDataProperty) + linkDataProperty.offsetHeight; popupDiv.style.border = "black 1px solid"; popupDiv.style.left = left + "px"; popupDiv.style.top = top + "px"; popupDiv.style.width = width + "px"; } //获取指定元素在页面中的宽度起始位置 function getLeft(e) { var offset = e.offsetLeft; if (e.offsetParent != null) { offset += getLeft(e.offsetParent); } return offset; } //获取指定元素在页面中的高度起始位置 function getTop(e) { var offset = e.offsetTop; if (e.offsetParent != null) { offset += getTop(e.offsetParent); } return offset; } } //清空输入框中的数据 function clearSelect() { var linkDataProperty=document.getElementById(linkDataProperty); linkDataProperty.value=""; } </script> ``` Servlet代码如下 ``` protected void processPost(HttpServletRequest request, HttpServletResponse response, ServiceSession serviceSession) throws Throwable { //往后传数据 System.out.println("进入servlet,将传入后台:"+request.getParameter("accountName")); //获得DAO服务 ZhglManage manage = serviceSession.getService(ZhglManage.class); //获得前台数据并往后台发送,同时接收返回的结果 String accounts = manage.searchAccountInOneResult(request.getParameter("accountName")); //往前端发送 PrintWriter out = response.getWriter(); System.out.println("返回servlet,即将返回获得的结果:"+accounts+" 给页面"); out.print(accounts); out.close(); } ``` DAO加Service代码如下: ``` public String searchAccountInOneResult(String inputing) throws Throwable { //尝试了Gson但也没成功 Gson gson = new Gson(); System.out.println("进入DAO,传入的参数是:"+inputing); //map方式 Map<String, String> rsMap = new HashMap<String,String>(); String account = ""; String key = ""; //获得连接 Connection conn = getConnection(); //准备SQL语句,获得单列账号信息 String sql = "SELECT @ROW := @ROW +1 AS ROW , t.F02 AS accountName FROM S61.T6110 t, ( SELECT @ROW :=0 )r WHERE t.F02 LIKE '"+inputing+"%' LIMIT 10"; PreparedStatement pstm = conn.prepareStatement(sql); //执行SQL ResultSet rs = pstm.executeQuery(); //获得结果 while(rs.next()){ //map方式 key = rs.getString("accountName"); account = rs.getString("accountName"); rsMap.put(key, account); } String temp = gson.toJson(rsMap); System.out.println("正在打印gson:"+temp); return temp; } ``` 然后控制台是这样的 进入servlet,将传入后台:1 进入DAO,传入的参数是:1 正在打印gson:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 返回servlet,即将返回获得的结果:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 给页面 firefox控制台和页面效果是这样的 ![图片说明](https://img-ask.csdn.net/upload/201505/18/1431943341_591979.png) 我对JS什么的不怎么懂,来请教下各位我哪里有问题,解决方法或者说解决思路应该是怎样的
file文件上传后返回上传到服务器的路径
jsp的file把文件上传到服务器后,如果不把上传后的路径写入数据库,那么要如何取到servlet里面的路径要在原页面中获取,或者转到action中的某个方法中获取,如果我用这个方法来传递参数到原页面![图片说明](https://img-ask.csdn.net/upload/201711/28/1511839311_419811.png),则最后返回原页面后,页面样式和内容全变了
javaweb如何实现点击商品页面跳转到本商品的详情页面
以上是jsp页面的代码,我是通过将从数据库获取到的所有商品封装到一个list集合中,使用request域存储数据,在jsp页面使用el获取的所有商品。我现在能否在这个基础上面实现点击商品,进入到本商品的详情界面,页面已经写好了。我自己的实现逻辑是:通过某个域存储商品的id信息,在servlet中获取到,去数据库中查找这件商品的所有信息,这个商品存这储到域空间中,在新的页面通过el获取,但是目前我无法实现将这个商品的id信息传存储到域空间中。我不知道这样能不能实现,是不是我的想法有错误,希望大神帮个忙!!! ``` <c:forEach items="${productList }" var="product"> <div class="col-md-2" style="height:250px"> <a href="product_info.htm"> <img src="${pageContext.request.contextPath }/${product.pimage }" width="170" height="170" style="display: inline-block;"> </a> <p> <a href="/WEB18/productOne" style='color: green'>${product.pname }</a> </p> <p> <font color="#FF0000">商城价:&yen;${product.shop_price }</font> </p> </div> </c:forEach> ``` 上面是所有商品的jsp页面的代码。
SSH框架中@Service 调用问题,急求大神解答!
我手头有个ssh项目框架,通过jsp页面操作,到Action中依次调用Service、Dao等方法进行操作。我现在需要在其他类中调用该Action中的Service的方法。先看图:这是某个Action中有个sdkDeployService,使用了@Resource注入。下面是Action内容: ![这个是Action内容](https://img-ask.csdn.net/upload/201603/29/1459236674_270359.png) 这个是Service: ![图片说明](https://img-ask.csdn.net/upload/201603/29/1459236743_529741.png) 这个是ServiceImpl: ![图片说明](https://img-ask.csdn.net/upload/201603/29/1459236784_373609.png) 我在其他地方这样写的: @Autowired private SdkDeployService sdkDeployService; sdkDeployService.deploy(); 结果显示:在sdkDeployService.deploy() 这里java.lang.NullPointerException.报空指针。求大神告诉,ssh里如何获得并调用service里的方法。急求,万分感谢!!
action无法获取get传值的疑问
想经由listSiteStylePrice.jsp传送某个sitestylepriceid给updatePSiteStylePrice.jsp填入修改页面 但一直无法获取sitestylepriceid 对比过可获取值的同类页面也找不出错误 listSiteStylePrice.jsp页面的删除功能正常 但我在updatePSiteStylePrice.action拿不到sitestylepriceid [color=red]listSiteStylePrice.jsp[/color] [code="java"] <s:iterator value="#request.sitestyleprice" id="us"> <tr> <td><s:property value="#us.freight.freightname"/></td> <td><s:property value="#us.sitestylepricename"/></td> <td><s:a href="updatePSiteStylePrice.action?sitestyleprice.sitestylepriceid=%{#us.sitestylepriceid}">更新</s:a></td> <td><s:a href="deleteSiteStylePrice.action?sitestyleprice.sitestylepriceid=%{#us.sitestylepriceid}" onclick="return del();">刪除</s:a></td> </tr> </s:iterator> [/code] [color=red]struts.xml[/color] [code="java"] <package name="siteStylePrice" extends="struts-default"> ....... <action name="updatePSiteStylePrice" class="updatePSiteStylePriceAction"> <result name="success">updatePSiteStylePrice.jsp</result> </action> <action name="updateSiteStylePriceSelect" class="customerSortAction"> <result>updateSiteStylePriceSelect.jsp</result> </action> ....... </package> [/code] [color=red]UpdatePSiteStylePriceAction[/color] [code="java"] public class UpdatePSiteStylePriceAction extends ActionSupport { private SiteStylePrice sitestyleprice; private SiteStylePriceService siteStylePriceService; getter/setter @Override public String execute() throws Exception { sitestyleprice=this.siteStylePriceService.findById(sitestyleprice.getSitestylepriceid()); return SUCCESS; } [/code] [color=red]updatePSiteStylePrice.jsp[/color] [code="java"] <body> <h1><font color="red">貨運價格更新頁面</font></h1><br><br> <s:form action="updateSiteStylePrice" method="post" name="sitestylepriceselect" id="updateSiteStylePrice"> <s:hidden name="sitestyleprice.sitestylepriceid" value="%{sitestyleprice.sitestylepriceid}"></s:hidden> <s:action name="updateSiteStylePriceSelect" executeResult="true"></s:action> </s:form> </body> [/code] [color=red]updateSiteStylePriceSelect.jsp[/color] [code="java"] <s:select name="sitestyleprice.freight.freightid" label="車行" list="freights" listKey="freightid" listValue="freightname"> </s:select><br> <s:textfield name="sitestyleprice.sitestylepricename" value="%{sitestyleprice.sitestylepricename}" label="地點車型價格" maxlength="30"></s:textfield> <s:submit></s:submit> [/code]
使用DWR出现奇怪问题
最近做项目,使用DWR的时候遇到了一个莫名其妙的问题: 需求:博客系统,当用户浏览某个博客首页的时候列出博主文章的标题列表,并且列出文章的回复数,由于回复在另外一个表中,需要查询count(*)获取。我的实现是,先列出文章标题,再用DWR获取各个文章的回复数(生成一个文章标题就生成一个ReplyCountUtil.replyCountUtil(id)方法获取回复数) JS对象配置: [code="java"]<create creator="spring" javascript="ReplyCountUtil" scope="request"> <param name="beanName" value="replyCountUtil" /> <include method="getArtCount" /> </create>[/code]给getArtCount方法传进去一个文章的ID,返回文章的回复数。 问题是:当页面加载完成后,DWR读取的回复数总是一样的(即第一篇文章的回复数),好像其他的getArtCount()就没有执行?? 为什么... 是不是我这种实现方式也有问题? [b]问题补充:[/b] 前台jsp是这样的,因为太多,我简化了一下: [code="java"]<ul class="archives"> <!-- 循环文章标题start --> <c:forEach items="${list}" var="article" varStatus="Status"> <li> <h3> 标题:<a href="#" target="_self">${article.name }</a> 回复:<span id="article_${article.id }"><script type="text/javascript" defer="defer">getNums(${article.id });}</script></span>条 </h3> </li> </c:forEach> <!-- end --> </ul>[/code] 页面加载完毕后执行getNums方法获取数量: [code="java"]<script type="text/javascript"> //获得文章的回复数 function getNums(id) { var obj = document.getElementById('article_'+year); obj.innerHTML = ""; //调用ReplyCountUtil类的getArtCount方法,根据Id获取文章的回复数 ReplyCountUtil.getArtCount(id,function (data) {setNums(id,data)}); } //innerHTML到<span> function setNums(id,data) { var obj = document.getElementById('article_'+id); obj.innerHTML = data;//data 文章的回复数 } </script>[/code] ReplyCountUtil类的getArtCount方法不用再贴出来了吧,就是通过DAO,执行sql的count()计算文章的回复数。 [b]问题补充:[/b] 还是有问题,估计是dwr在多个相同的方法并行执行时变量有问题? 另外问下:一般像博客、论坛系统取回帖数是怎么去的,谢谢~~ [b]问题补充:[/b] 请问 lovewhzlq 一般像博客、论坛首页当列出标题后,是怎么读取回帖数、浏览量的,谢谢~~ [b]问题补充:[/b] 是一次全部取出赋值,还是像我的实现那样生成多个ajax方法, 最后一个问题,谢谢
一个Webservice 服务,多次重复调用其中某个方法,出现错误。
<p>做了一个 xfire 的Webservice 服务,提供给FLEX 调用。</p> <p>其中有个操作是重复多次调用某一个方法 <strong>getStaticEntiy()</strong>,<strong>有时不定</strong>出现以下的一些错误: </p> <p> </p> <p><strong>                  java.sql.SQLException:</strong> <strong>Connection  is closed</strong></p> <p> </p> <p><strong>                 java.sql.SQLException: Invalid state, the ResultSet object is closed.</strong></p> <p> </p> <p> </p> <p><strong>但是,我把下面的这些方法放到web项目 里面,让jsp页面调用,获取数据,随便怎么频繁的刷新页面获取数据,都能正常获取,就是放到Webservice里面不正常。</strong></p> <p>获取数据库链接是,通过 TOMCAT连接池 来获得的。</p> <p>下面是部分代码:</p> <pre name="code" class="---Webservice &#20027;&#35201;&#35843;&#29992;&#26041;&#27861;&#65292;getStaticEntity()---">public byte[] getStaticEntiy(String pmname, int scalesize, float x, float y) { byte[] bContent = null; try { conn = DBPool.getPool().getConnection(); //获取连接池中的链接 bContent = scaledao.getStaticEntiyData(pmname, scalesize, x, y, conn); //这是从数据库读取数据的方法 } catch (SQLException e) { e.printStackTrace(); } finally { if(conn!=null){ try { conn.close(); //释放链接 } catch (SQLException e) { e.printStackTrace(); } } } return bContent; }</pre> <p> </p> <p> </p> <pre name="code" class="getStaticEntiyData ()&#26041;&#27861;">public byte[] getStaticEntiyData(String pmname, int scalesize, float x, float y,Connection conn) { byte[] bContent = null; ByteArrayOutputStream out = new ByteArrayOutputStream(500000); IOdeal bs = new IOdeal(); sql = "select s.descript from (staticentity s inner join scale s1 on s1.scaleid = s.scaleid) " + " inner join projectmap p on p.pmid = s1.pmid " + " where p.pmname=? and s1.scalesize=? and s.x=? and s.y=?"; try { ps = conn.prepareStatement(sql); ps.setString(1, pmname); ps.setInt(2, scalesize); ps.setFloat(3, x); ps.setFloat(4, y); rs = ps.executeQuery(); while(rs.next()) { bs.writeFileStream(rs.getBinaryStream(1), out); } } catch (SQLException e) { e.printStackTrace(); } bContent = out.toByteArray(); try { out.close(); } catch (IOException e) { e.printStackTrace(); } return bContent; }</pre> <p> </p>
请教Spring + Hibernate进行开发时,session关闭问题
程序代码 <br />public class DaoReal extends HibernateDaoSupport implements Dao { <br />  public List&lt;user&gt; getAll() { <br />    Session s = super.getSession(); <br />    try { <br />      return s.createQuery("from User").list(); <br />    } finally { <br />      s.close(); <br />    } <br />  } <br />} <br /> <br /> <br />问题:(利用session.createQuery(...)方法的隐患) <br />上面的例子中隐藏了一个问题,数据库连接并没有被关闭,在我们的印象中这件事似乎应该是Spring的。程序执行后,好像也没有什么问题,但是连续执行该语句n次(n&lt;=最大连接数,如果没有指定最大连接数,那么默认为10次)后,系统处于等待状态,不会继续执行了,控制台上并没有输出任何信息。打开log文件,发现系统抛出java.lang.IllegalStateException: Pool not open的异常,无法打开连接。这说明系统连接池中所有的连接都在使用中。 <br /> <br />执行n遍后依然停止响应。问题出在哪里呢?其实Spring的Session总是与某个线程绑定的,而这个线程往往就是承载Servlet或Jsp的那个线程,也就是说,它的生命周期scope是request的。在上面的例子中,我们利用getSession强制获得了Hibernate的 Session,这个Session可能是当前事务中之前使用过的,或者可能是一个新的,并不在当前事务中,Spring只对当前事务中的Session 进行关闭。 <br /> <br /> <br />请教大家有什么解决办法没? 还是我提的问题是错误的?谢谢大家?<br /><strong>问题补充</strong><br />回楼上: <br />用到了hibernate+spring的话,一般我们直接用getHibernateTemplate().find("from User")这类型的查询。 <br /> <br />单是现在我项目里面程序用到这个类型的: <br />Session s = super.getSession(); <br />try { <br />      return s.createQuery("from User").list(); <br />  } finally { <br />      s.close(); <br />  } <br /> <br />我们测试中好像发现了这个session不能完全关闭好像。是不是这么回事??<br /><strong>问题补充</strong><br />在使用Spring进行系统开发的时候,数据库连接一般都是配置在Spring的配置文件中,并且由Spring来管理的。在利用Spring + Hibernate进行开发时也是如此。 <br /> <br />getHibernateTemplate().find("from User"); <br />这类型的我们并没有关闭Session,但程序并没有任何问题,那是因为Spring已经帮我们关闭了。 <br /> <br /><br /><strong>问题补充:</strong><br />getSession()是从当前的ThreadLocal中拿到的SESSION <br />就是说可以不用关闭SESSION,但这个线程结束的时候,SESSION就没了。。 <br /> <br /> <br />但是我们的请求也许也许没有响应,一直在请求过程中,也是就是这个线程还没结束,那这个session也就没有关闭吧!
请教yourgame^_^
yourgame你好, 在你共享的“图书管理系统”中,ViewPort采用了border的布局方式(layout:'border'), 其中viewport中的west部分作为“菜单区”, center部分作为“工作区”, 通过点击左边的某个菜单项,会在工作区内显示对应的操作界面, 同时工作区你采用的是card的布局方式(layout:'card'), 如此,只能够在工作区同一时刻显示一个交易画面(items:[start, p_company, p_user, p_dept, p_duty, p_subject, p_category, p_book, p_simple_book] 中的任意一个), 现在我想将“工作区”修改为tabpanel的布局方式,也就是达到如下效果——点击菜单,在工作区显示对应交易的画面panel, 如下图所以: [img]E:/未命名2.bmp[/img] 我现在遇到的问题是,无法将原来的交易面板放入点击菜单后弹出的对应tabs中去!就像图中所示一样,弹出来的是空白的tabs:( 对“图书管理系统”中 main.js代码的调整如下(你可以直接查找“chg by”字样的地方): Ext.BLANK_IMAGE_URL = 'lib/ext/resources/images/default/s.gif'; Ext.QuickTips.init(); var start = { id : 'start-panel', title : '欢迎使用', layout : 'fit', bodyStyle : 'padding:25px', html : '<img src="images/bg.jpg"/>' }; Ext.onReady(function() { setTimeout(function(){ /* 清除显示加载信息的div标记 */ Ext.get('loading').remove(); /* visible 使要素可以被看见 * hidden 使要素被隐藏 * inherit 指它将继承母体要素的可视性设置。 * 值 inherit 为缺省值。这使单元继承父单元的可见性。所以,如果某一段是隐藏的,则它包含的任何行间单元也都被隐藏。这一继承性可被明确指定的可见性取代。*/ Ext.getDom('header').style.visibility = 'visible'; /* 开始创建界面视图——程序可视区域 * 一个页面上只允许存在一个viewport */ var vp = new Ext.Viewport({ layout : 'border', defaults : { collapsible : true, split : true }, items : [{ xtype : 'box', region : 'north', applyTo : 'header', height : 30, split : false }, { xtype:'panel', title : currentUser, id : 'accordion-panel', layout : 'border', region : 'west', baseCls:'x-plain', margins : '2 0 5 5', width : 200, minSize : 200, maxSize : 250, bodyStyle : 'background-color:#DFE8F6', defaults : { border : false }, bbar : [{ text : '开始', iconCls : 'icon-plugin', menu : new Ext.menu.Menu({ items : [{ text : '关于系统', iconCls : 'icon-info', handler : function() { new Ext.Window({ closeAction : 'close', resizable : false, bodyStyle : 'padding: 7', modal : true, title : '关于本系统', html : '本系统采用目前较为流行的技术实现,<br>前台使用了ExtJs技术,所以实现了跨浏览器<br>' + '本程序在IE6,IE7,FireFox3均测试通过!<br><br>主要技术: Struts2 + Spring2.5 + iBatis2.3 + ExtJs2.2<br><br>' + '数&nbsp;&nbsp;据&nbsp;&nbsp;库: Microsoft SQL Server 2000', width : 300, height : 200 }).show(); } }, { text : '退出系统', iconCls : 'icon-delete', handler : function() { Ext.Msg.confirm('操作提示', '您确定要退出本系统?', function(yorn) { if ('yes' == yorn) { Ext.Ajax.request({ url : 'logout.action', success : function() { location = '/bmsh/index.jsp'; }, failure : function() { Ext.Msg.show({ title : '错误提示', msg : '退出系统失败!', icon : Ext.Msg.ERROR, buttons : Ext.Msg.OK }); } }); } }); } }] }) }], items : [{ layout : 'accordion', region : 'center', items : [{ title : '导航菜单', iconCls : 'icon-nav', border : false, items : [{ xtype : 'treepanel', border : false, rootVisible : false, autoScroll : true, loader : new Ext.tree.TreeLoader({ //根据界面勾选manager的值选择菜单项 dataUrl : nav == 'manager' ? 'js/tree-data-manager.json' : nav =='mine' ?'js/tree-data-mine.json' :'js/tree-data-simple.json' }), root : new Ext.tree.AsyncTreeNode(), listeners : { /* chg by megaecho 20090521 * 用tabPanel布局方式实现 菜单调出 工作区 交易界面 * 'click' : function(n) { try { //如果点击子叶点,则驱动显示相应的交易界面 //如何判定本次点击的node为原有的node呢? 就是不想重新加载页面。 var sn = this.selModel.selNode || {};// 方法:取原选定的node if (n.leaf && n.id != sn.id) { //Ext.Msg.alert("你点击了:"+n.id+"["+n.id.substring(0, n.id.indexOf('-'))+'-panel'+"]"); // 根据选中的菜单拼出panel,并指定载入到ViewPort中id为content-panel的标记 // 也就是将交易界面载入 region=center区域——指定活动items Ext.getCmp('content-panel').layout.setActiveItem(n.id.substring(0, n.id .indexOf('-')) + '-panel'); } } catch (e) { } }*/ 'click' : function(n){ //panel的命名规则:panel+'-panel' var treePanelId = n.id.substring(0, n.id .indexOf('-')) + '-panel'; //检查TabPanel(content-panel)中是否已经打开了id为treePanelId的panel //无,则新建panel并且id为treePanelId var tabTmp = Ext.getCmp('content-panel').getItem(treePanelId); if(tabTmp==null){ alert("新打开"+treePanelId+"panel"); Ext.getCmp('content-panel').add({ xtype:'panel', title: n.text, id:treePanelId, closable:true }).show(); }else{ alert("panel"+treePanelId+"已经被打开,跳回已经打开的panel去"); alert(treePanelId+"has been created....."); Ext.getCmp('content-panel').setActiveTab(tabTmp); } } } }] }] }] }, /* * chg by megaecho 20090521 * 用tabPanel布局方式实现 菜单调出 工作区 交易界面 { id : 'content-panel', region : 'center', layout : 'card', margins : '2 5 5 0', activeItem : 0, border : false, //以下items定义了中间区域包含的交易界面(类),并且按照顺序进行载入 ,默认载入第一个,此处也就是先载入 start items : [start, p_company, p_user, p_dept, p_duty, p_subject, p_category, p_book, p_simple_book] }*/ { title:'操作区域', id:'content-panel', region:'center', xtype:'tabpanel', margins : '0 1 1 0', activeItem : 0, border : false, autoTabs : false, hideCollapseTool :true , items:[start, p_company, p_user, p_dept, p_duty, p_subject, p_category, p_book, p_simple_book] }] }); }, 250); }); 希望这次表述清楚了,并且能得到你的帮助!谢谢! [b]问题补充:[/b] [code="java"] 'click' : function(n){ if( n.leaf ){ var treePanelId = n.id.substring(0, n.id.indexOf('-'))+'-panel'; var tabPanelTmp = Ext.getCmp('content-panel'); var tabTmp = tabPanelTmp.getItem(treePanelId); if(tabTmp==null){ alert("新打开"+treePanelId+"panel"); /* 使用if..elseif 判断菜单对应的交易界面,并调出——成功*/ if( n.id == 'book-manage' ){ tabPanelTmp.add(p_book).show(); }else if( n.id == 'company-manage'){ tabPanelTmp.add(p_company).show(); }else if( n.id == 'dept-manage'){ tabPanelTmp.add(p_dept).show(); }else if( n.id == 'user-manage'){ tabPanelTmp.add(p_user).show(); }else if( n.id == 'duty-manage'){ tabPanelTmp.add(p_duty).show(); }else if( n.id == 'subject-manage'){ tabPanelTmp.add(p_subject).show(); }else if( n.id == 'category-manage'){ tabPanelTmp.add(p_category).show(); } /* [新问题]:将上面if elseif 代替如下,根据传入的节点n得到对应的'p_XXXX'这样的名字, * 以获得对p_XXXX的调用,达到自动使用以后交易的增加..... * 但是执行 tabPanelTmp.add( 'p_'+n.id.substring(0, n.id.indexOf('-')) ).show(); * 却不能得到效果 tabPanelTmp.add( 'p_'+n.id.substring(0, n.id.indexOf('-')) ).show(); */ }else{ alert("panel"+treePanelId+"已经被打开,跳回已经打开的panel去"); Ext.getCmp('content-panel').setActiveTab(tabTmp); } }else{ //alert("非叶节点"); } } [/code] [b]问题补充:[/b] 谢谢issppt的帮助! 更是感谢yourgame,耐心的指导! 问题暂时解决了! 如你所说,我把p_xxxxx这些加入到新增加的panel对应的items参数中就ok了! 但是为了要根据点击菜单来选择对应的p_XXXX,我的做法相对死板 如下: [code="java"] 'click' : function(n){ if( n.leaf ){ var treePanelId = n.id.substring(0, n.id.indexOf('-'))+'-panel'; var tabPanelTmp = Ext.getCmp('content-panel'); var tabTmp = tabPanelTmp.getItem(treePanelId); if(tabTmp==null){ alert("新打开"+treePanelId+"panel"); [b] /* 死板:使用if..elseif 判断菜单对应的交易界面,并调出——成功*/ [/b] if( n.id == 'book-manage' ){ tabPanelTmp.add(p_book).show(); }else if( n.id == 'company-manage'){ tabPanelTmp.add(p_company).show(); }else if( n.id == 'dept-manage'){ tabPanelTmp.add(p_dept).show(); }else if( n.id == 'user-manage'){ tabPanelTmp.add(p_user).show(); }else if( n.id == 'duty-manage'){ tabPanelTmp.add(p_duty).show(); }else if( n.id == 'subject-manage'){ tabPanelTmp.add(p_subject).show(); }else if( n.id == 'category-manage'){ tabPanelTmp.add(p_category).show(); } [b] /* [新问题]:将上面if elseif 代替如下,根据传入的节点n得到对应的'p_XXXX'这样的名字, * 以获得对p_XXXX的调用,达到自动使用以后交易的增加..... * 但是执行 tabPanelTmp.add( 'p_'+n.id.substring(0, n.id.indexOf('-')) ).show(); * 却不能得到效果 tabPanelTmp.add( 'p_'+n.id.substring(0, n.id.indexOf('-')) ).show(); */ [/b] }else{ alert("panel"+treePanelId+"已经被打开,跳回已经打开的panel去"); Ext.getCmp('content-panel').setActiveTab(tabTmp); } }else{ //alert("非叶节点"); } } [/code] [b] 现在想请教如何处理[新问题]? [/b] 我想这个新问题关键还是自己对extjs没有理解所致, 对如下的代码段 的实质 和如何才能 引用未搞清楚!再次求教! [code="java"] var p_book = { title:'图书信息管理', id : 'book-panel', border : false, layout : 'fit', closable:'true', items : [book_panel] } [/code] 另外我通过网上的资料学习,掌握了向TabPanel中动态增加tabs的方法: 1.iframe方式 2.autoLoad方式 3.扩展Panel 资料连接:http://chenxueyong.iteye.com/blog/353371
Kafka实战(三) - Kafka的自我修养与定位
Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控,以及用户行为数据处理等。 遇到的主要问题: 数据正确性不足 数据的收集主要...
volatile 与 synchronize 详解
Java支持多个线程同时访问一个对象或者对象的成员变量,由于每个线程可以拥有这个变量的拷贝(虽然对象以及成员变量分配的内存是在共享内存中的,但是每个执行的线程还是可以拥有一份拷贝,这样做的目的是加速程序的执行,这是现代多核处理器的一个显著特性),所以程序在执行过程中,一个线程看到的变量并不一定是最新的。 volatile 关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
GitHub开源史上最大规模中文知识图谱
近日,一直致力于知识图谱研究的 OwnThink 平台在 Github 上开源了史上最大规模 1.4 亿中文知识图谱,其中数据是以(实体、属性、值),(实体、关系、实体)混合的形式组织,数据格式采用 csv 格式。 到目前为止,OwnThink 项目开放了对话机器人、知识图谱、语义理解、自然语言处理工具。知识图谱融合了两千五百多万的实体,拥有亿级别的实体属性关系,机器人采用了基于知识图谱的语义感...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
微信支付崩溃了,但是更让马化腾和张小龙崩溃的竟然是……
loonggg读完需要3分钟速读仅需1分钟事件还得还原到昨天晚上,10 月 29 日晚上 20:09-21:14 之间,微信支付发生故障,全国微信支付交易无法正常进行。然...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
相关热词 c# 二进制截断字符串 c#实现窗体设计器 c#检测是否为微信 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片
立即提问