Help!!! Struts2+ExtJs action返回结果输出到其他页面的问题

想要实现的是获取action返回后跳转到另外的页面(struts.xml控制),并把数据用GridPane输出.也就是用gridpanel替换掉""标签的作用.
例如 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">


method="searchUser">
/userlist.jsp



[/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.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展现)

3个回答

有种办法,你在Action中将json格式的数据放到一个变量里,然后你转发到

.jsp

这个jsp就页面里这么写

然后你在写个请求的action,负责取数据的就可以了。只不过就是把action中负责装json格式的变量统一转发到一个页面。

你完全理解错误了..

如果用到了extjs 就不需要什么跳转了.你直接输出out.print(json);

还有一点,竟然你用了struts2,就没有必要去用json-lib.jar struts2自带的插件扩展好强大.而且又很方便
下面是我用extjs+ struts2整合的两个例子
[url]http://yourgame.iteye.com/blog/353361[/url]
[url]http://yourgame.iteye.com/blog/252853[/url]

对啊,我说的意思就是你所理解的思路。基本上差不多,我现在的项目就是用这种方式来做的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
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展现)
关于extjs接收 struts2的action返回的json问题
情况如下 extjs接收不了struts2的action返回的json var but = this; but.setDisabled(true); this.setText('正在登陆'); Ext.getCmp('login-form').getForm().submit({ waitMsg : '正在登录 ', url : 'login.action', method : 'POST', success : function(form, action) { Ext.Msg.alert('信息','成功'); window.location.href ='main.jsp'; but.setDisabled(false); }, failure : function() { Ext.Msg.alert('信息','失败'); but.setText("登陆"); but.setDisabled(false); } login.action返回的是{"msg":"eee","password":null,"username":null}
struts2返回json数据extjs的store无法获取
最近学习struts和extjs,在使用extjs下拉框的时候,想通过查询数据库 返回的形式。于是配置了store和struts返回josn。具体代码如下图: ![图片说明](https://img-ask.csdn.net/upload/201906/30/1561907213_644754.png)![图片说明](https://img-ask.csdn.net/upload/201906/30/1561907224_873084.png)![图片说明](https://img-ask.csdn.net/upload/201906/30/1561907245_548449.png)![图片说明](https://img-ask.csdn.net/upload/201906/30/1561907258_732424.png) 可以看到直接访问action是有数据的,但是extjs的store的count一直是0
EXTjs页面submit后 action.result接收不到参数??
我的目的是 extjs提交form到 process.jsp process.jsp 处理数据后进行两个操作: 1: 通过out.println() 返回操作结果 true或false 给extjs页面的 action.result extjs页面根据操作结果关闭窗口 2. process.jsp 通过window.open 弹出新窗口,进行下一个页面的操作 (那一堆js就是弹新窗口的) 现在遇到的情况是process.jsp处理数据后,虽然有out.println()返回,但EXTJS页面action.result 接收不到结果 新窗口倒是可以正常弹出 如果去掉弹新窗口的js代码,EXTJS页面action.result 就可以接收到结果了,奇怪啊 1、EXTjs A页面,将信息submit到process.jsp,然后等待操作结果 ``` fm.getForm().submit({ url : 'process.jsp' , waitMsg : 'Uploading your file...', success : function(fm, action) { if (action.result == true) { Ext.MessageBox.alert('OK', 'success.'); window.close(); } }, failure : function(fm, action) { if (action.result == false) { alert('File upload false.'); } } ``` 2、process.jsp 页面根据obj返回类型,分别返回A页面 out.println("false"); 和 out.println("true"); 但A页面action.result 始终接收不到参数 若去掉process.jsp 页面out.println代码下面的js语句则正常,什么原因 ``` <% String errorStr = ""; Object obj = Getdata.doprocess(request); if (obj instanceof String && obj.toString().length() > 0) { errorStr = (String) obj; out.println("false"); %> <script type="text/javascript"> window.onload=function(){ var newWim=open("Error.jsp"); newWim.document.write("<%=errorStr%>"); }; </script> <% }else if (obj instanceof JSONArray){ out.println("true"); %> <script type="text/javascript"> window.onload=function(){ var newWim=open('VariantSelection.jsp'); }; </script> <% } %> ```
ExtJS+Struts2使用ajax上传文件问题
extjs3.4+struts2 使用了struts2-json插件, 现在问题来了。 我在前端使用Extjs创建formpanel上传文件, 前面全部没有问题,上传也是成功的, 关键就是返回这里,因为使用struts2-json插件,所以返回type就是json了。 但是我在chrome里面查看,返回的时候报错: Resource interpreted as Document but transferred with MIME type application/json: . 以前没有使用插件,采用的是GSON,讲需要返回的值直接显示到一张页面上,然后获取,就没有问题的。 这个问题有人碰见过没有? 怎么解决啊? google了一下,说是改变返回的content type的值,这个怎么改?
struts2交互EXTjs
function getUpdateForm() { win.title = '修改考勤信息'; if(!form){ form = new Ext.FormPanel({ labelWidth : 75, //url :'UpdateEmployee.action', frame : true, bodyStyle : 'padding:5px 5px 0', width : 340, defaults : { width : 230 }, defaultType : 'textfield', standardSubmit : true, items : [{ fieldLabel : 'id', name : 'employee_id', readOnly : true }, { fieldLabel : '姓名', name:'name', allowBlank : false }, { fieldLabel : '业务室', name : 'department' }, { fieldLabel : '上午', name : 'morning' }, { fieldLabel : '下午', name : 'afternoon' }, { fieldLabel : '日期', name : 'datenote' }, { fieldLabel : '备注', name : 'note' }], buttons : [{ text : '保存', // formBind : true, type : 'submit', // 定义表单提交事件 handler : function() { if (form.form.isValid()) {// 验证合法后使用加载进度条 // 提交到服务器操作 form.form.doAction('submit', { url : '../UpdateEmployee.action',// 文件路径 method : 'post',// 提交方法post或get params : '', // 提交成功的回调函数 failure : function(retForm, retAction) { if (retAction.result && retAction.result == '1') { Ext.MessageBox.alert('提示', '保存数据成功!'); win.hide(); /* var totalCount = ptb.store.getTotalCount(); var pageSize = ptb.pageSize; var div = parseInt(totalCount / pageSize); var mol = totalCount % pageSize; ptb.cursor = div * pageSize;*/ ds.load({ params : { start : 0, limit : 10 } }); } else if (retAction.result && retAction.result == 'error') { Ext.MessageBox.alert('提示', '保存数据失败!'); } else { Ext.Msg.alert('错误', '服务器出现错误请稍后再试!'); } }, waitMsg : '保存数据...' }); } } }, { text : '取消', handler : function() { form.form.reset(); }// 重置表单 }] }); } return form; ////////////////////////////// public String UpdateEmployee() { //System.out.println(this.employee.getEmployee_id() + "---" + this.employee.getName() + "---"); this.setJsonString("{success:true}"); System.out.println(this.getJsonString()); try { this.getEmployeeService().updateEmployee(this.getEmployee()); } catch (Exception e) { e.printStackTrace(); } return SUCCESS; } /////////////////////////////////////// 怎么是总是这个错误呢?attempt to create saveOrUpdate event with null entity 不是struts2可以对象传递吗?
通过struts的action跳转到html页面,可以成功,但是无法调用extJS文件
见图一,我用action跳转到index.html,跳转action如下: [code="java"] <package name="front" namespace="/" extends="struts-default" > <action name="Category_list" class="com.strutsextjs.bbs.action.CategoryAction"> <result>admin/index.html</result> </action> </package> [/code] 该html如下:[code="java"]<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>北京尚学堂BBS2009论坛管理平台</title> <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" /> <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext/ext-all.js"></script> <script type="text/javascript" src="ext/ext-lang-zh_CN.js"></script> <style type="text/css"> html,body { font: normal 12px verdana; margin: 0; padding: 0; border: 0 none; overflow: hidden; height: 100%; } .empty .x-panel-body { padding-top: 0; text-align: center; font-style: italic; color: gray; font-size: 11px; } .x-btn button { font-size: 14px; } .x-panel-header { font-size: 14px; } </style> <script type="text/javascript"> Ext.onReady( function() { Ext.Msg.alert('ext','welcome you!'); ......---->省略 }); </script> </head> <body> </body> </html> [/code] 我在body中加入字符串"dddd",然后浏览器地址输入http://localhost:8080/struts2_3000_BBS2009_01/Category_list,发现body部分的确出现了ddd,也就是说页面访问到了,且并没有执行extJS部分内容。 另外我在浏览器中输入http://localhost:8080/struts2_3000_BBS2009_01/admin/index.html,居然就能够显示出页面内容了,说明extJS起作用了。 我怀疑是通过struts来访问该页面时调用extJS的库文件出了问题。但是具体怎么解决实在是不清楚了!小弟刚学这个,不知道谁能指导下,谢谢!
struts2 + extjs + json + tree
数据库字段:id parentID name 可以帮我用extjs struts2 json tree 写一颗树出来吗 要求具体点:这是我写的extjs var root = new Ext.tree.AsyncTreeNode({ id:'-1', text:"XXX公司", loader:new Ext.tree.TreeLoader({ url:"getAar.action", listeners:{ "beforeload":function(treeloader,node) { treeloader.baseParams={ id:node.id, method:'POST' }; } } }) }); var tree =new Ext.tree.TreePanel({ title:"动态Tree", width:350, height:300, root:root, autoScroll:true,//显示滚动条 animate : true,//true表示使用动画展开/折叠 listeners:{ 'click':function(node){ alert(node.id);//得到的节点 } } }); tree.getRootNode().expand(true); 我到action: aarList=areaService.getAar(); return Action.SUCCESS; 另外我拿到的aarList以这样的数据库结构怎么变成List<Map> 才能得到我想要的接送格式啊 求求各位大哥们帮小弟想想啊 我快疯了
extjs htmleditor与struts2 的问题
项目是extjs+struts2 在表单中有htmleditor 提交后在action中得到的htmleditor 总是有个'?'保存到数据库中也存在,但是在客户端alert('')打印的时候什么也没有,但是htmleditor 不填任何东西的时候,alert()htmleditor内容的length 是1不是0,有人遇到过吗.
关于Extjs3.2 与 struts2.0交互的问题
小弟用Extjs与struts2配置做了个小系统,前台Extjs调用了newdept.action提交数据,原想在提交数据成功或者失败时能够给extjs返回信息,可是只收到了success成功或失败的信息,无法返回附加的消息,部分代码如下请各位朋友帮忙看看,谢谢。 ext提交部门代码 submit:function(){ this.getForm().submit({ url:'newdept.action', success:this.onSubmit , failure:this.onFail, waitTitle:"数据传送" , waitMsg:"数据传送中,请稍候..." , scope:this}) ; } onFail:function(_form, _action){ alert(_action.result.msg); } action部分的代码 if( DeptManager.isExist(deptNo)){ ctx = ActionContext.getContext(); request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST); response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.getWriter().write("{success:false,msg:'部门编号已经存在!'}"); return null; } 问题是能够接收到success:false,不能收到msg;系统提示:_action.result undefined; 很奇怪都是我把url改成url:'test.jsp',改成直接在jsp中执行<%out.print("{success:false,msg:'errrrr'}")%>成功。
struts2把json传递给extjs要怎么配置呀?
struts2把json传递给extjs要怎么配置呀? [b]问题补充:[/b] 能不能发一个可以运行的例子给我啊
extjs5 请教Ext.data.proxy.JsonP的使用方法!!!
背景:extjs5(mvc),Java~从一个系统获取另外一个系统的数据 在store的URL填上一个系统提供的API,可是会出错,查询得知,是跨域获取数据问题,请问应该怎么去解决这个跨域的问题? 还有,查到,用jsonp这个方法可以解决跨域的问题,可是没用过这个方法,不会用,请问,有哪位高人有什么好的例子可以提供来参考吗?由于本人的智商有限,希望给出的例子别太高大上,拜托了!!! (附:看过extjs的有关的API了,问题出在服务器端的实现)
急~~~~ExtJs Cookie操作---针对不同用户保留客户显示/隐藏列习惯
我做了个页面 grid表格显示 表格头上面又三个按钮 点击按钮分别显示不用的表格数据【显示所有问题】,【我的问题】,【我的未解决问题】 默认是显示我的问题 我用设置Cookie,但是只是针对【我的问题】页面有效,当点击其他任何按钮时,有没效果了~! 请高手解答!!! ExtJS版本 4.2
EXTJS 中引用STRUTS2中的PROPERTIES问题
Ext.Strong.sht.Window_DengLu = Ext.extend(Ext.Window, { width : 400, modal : true, height : 160, closable : false, [color=red]title : '${action.getText("HT_DENG_LU_TI_SHI")}',[/color]如上所示:EXTJS 中的TITLE引用的是ACTION中的PROPERTIES文件中的HT_DENG_LU_TI_SHI关键字、为什么在FIREFOX中能正常显示、而在IE中不能正常显示呢?
用Extjs提交表单后,请求有返回数据,但success函数的action里取不到返回结果
``` /** * 打开数据项导入窗口 */ function openDataItemImportWnd() { Ext.create('Ext.window.Window', { title: '导入数据项', autoHeight: true, width: 400, modal: true, layout: 'fit', items: { xtype: 'form', method : 'POST', url: "importDataItemStructure.up", standardSubmit: false, items: [{ xtype: 'filefield', emptyText: '请选择要上传的xls文件', id: 'filefield_yY71MXsb', name: 'fileName', allowBlank: "false", width: 300, hideLabel: 'false', labelAlign: 'right' }], buttons: [{ text: '导入', formBind: true, handler: function(button) { Ext.getBody().mask('数据导入中...'); // 获取表单的值 var form = button.up('form').getForm(); form.submit({ success: function(form, action) { console.dir(action); Ext.Msg.alert('Success', action.result.info.message); }, failure: function(form, action) { Ext.Msg.alert('Failed', action.result ? action.result.info.message : 'No response'); } }); Ext.getBody().unmask(); } }, { text: '取消', handler: function(button) { button.up('window').destroy(); } }] } }).show(); } ```
Extjs中怎么使用struts2的标签?
比如一下是一个Panel,里面的fieldLabel ,或者blankText ,msg 等我想用<s:text name="XXX"/>来代替,可以吗? var login = new Ext.FormPanel({ labelWidth : 75, monitorValid : true, baseCls : 'x-plain', defaults : { width : 150 }, defaultType : 'textfield', items : [{ fieldLabel : '用户名', name : 'userName', allowBlank : false, blankText : '用户名不能为空!' }, { inputType : 'password', fieldLabel : '密码', name : 'password', allowBlank : false, blankText : '密码不能为空!' }], buttons : [{ text : '登录', formBind : true, type : 'submit', handler : function() { Ext.MessageBox.show({ title : '系统提示', msg : '正在登录,请稍候...', progressText : '', width : 300, progress : true, closable : false, animEl : 'loading' }); var f = function(v) { return function() { var i = v / 11; Ext.MessageBox.updateProgress(i, ''); }; }; for (var i = 1; i < 12; i++) { setTimeout(f(i), i * 150); } login.form.doAction('submit', { url : 'Login.action', method : 'post', params : '', success : function(form, action) { if (action.result.msg == 'ok') { window.location = 'List.jsp'; } else { Ext.Msg.alert('登录失败',action.result.msg); } }, failure:function(form, action){ if(action.failureType == 'server'){ obj = Ext.util.JSON.decode(action.response.responseText); Ext.Msg.alert('登录失败', obj.errors.reason,function() {form.findField('userName').focus();}); }else if(action.failureType=="connect"){ Ext.Msg.alert('服务器异常', '连接请求失败,请与管理员联系!'); }else if(action.failureType=="client") { Ext.Msg.alert('客户端异常', '客户端的数据异常,请与管理员联系!'); }else{ Ext.Msg.alert('Warning!', '^^Authentication server is unreachable : ' + action.response.responseText); } } }); } }, { text : '取消', handler : function() { login.form.reset(); }// 重置表单 }] }); [b]问题补充:[/b] 但我试了,打不出来,是空的。。 [b]问题补充:[/b] 忘记说个问题,这些js是单独提出来在一个*.js文件里的, jsp中加了<%@ taglib prefix="s" uri="/struts-tags"%>这句话 为什么不好用呢? [b]问题补充:[/b] extjs有他自己的国际化方式.请使用正确的方法 什么方法?可以说出来吗? [b]问题补充:[/b] 我的意思不是extjs本身的国际化,而是写在extjs里面自己的语言的国际化 [b]问题补充:[/b] 但感觉很乱啊,提出来的话jsp就好多了。。 [b]问题补充:[/b] 有没有可能把javascript提出到*.js文件里面,然后做国际化呢?
关于extjs+struts2 的一些问题
[color=red] 2011-7-27 8:07:29 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register 信息: Parsing configuration file [struts-default.xml] 2011-7-27 8:07:29 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register 信息: Parsing configuration file [struts-plugin.xml] 2011-7-27 8:07:29 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register 信息: Parsing configuration file [struts.xml] 2011-7-27 8:07:30 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory <clinit> 信息: Setting DefaultObjectTypeDeterminer as default ... 2011-7-27 8:07:30 org.apache.struts2.dispatcher.Dispatcher init_CheckWebLogicWorkaround 信息: WebLogic server detected. Enabling Struts parameter access work-around. 2011-7-27 8:07:30 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register 信息: Parsing configuration file [struts-default.xml] 2011-7-27 8:07:31 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register 信息: Parsing configuration file [struts-plugin.xml] 2011-7-27 8:07:31 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register 信息: Parsing configuration file [struts.xml] 2011-7-27 8:07:31 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory <clinit> 信息: Setting DefaultObjectTypeDeterminer as default ... 2011-7-27 8:07:31 org.apache.struts2.dispatcher.Dispatcher init_CheckWebLogicWorkaround 信息: WebLogic server detected. Enabling Struts parameter access work-around. [/color] 这个算不算错误? 如果错误该怎么解决? 如果不是错误该怎么让服务器启动时候不提示? 如果这些存在 会有什么影响?
【extjs】Ext.data.HttpProxy的问题,关于grid加载acion返回数据(struts2)
如题,初学extjs [code="java"] var store =new Ext.data.JsonStore({ autoLoad:true, proxy:new Ext.data.HttpProxy({url:"http://localhost:8080/rbs/Login_testLogin.action"}), // data:[{"id":1,"name":"图片","typeValue":"pic"},{"id":2,"name":"视频","typeValue":"avi"}], fields:["id","name","typeValue"], }) [/code] 上面的代码中,url里的action返回的string结果就是下面注释行中data的内容 但是当我使用注释行里写死的数据的时候,grid才能加载到数据,而用proxy获取action返回数据的时候,却不行 然后是action的代码 [code="java"] List<Types> lt = service.findListByParam("from Types types"); JSONArray jsonObject = JSONArray.fromObject(lt); outputStr = jsonObject.toString(); System.out.println(outputStr); PrintWriter out = ServletActionContext.getResponse().getWriter(); getResponse().setContentType("text/javascript;charset=GBK"); out.print(outputStr); return null; [/code]
EXTjs & JSP页面弹出新窗口并返回信息问题
1、 A页面 submit 到 process.jsp页面 ``` A页面JS代码 fm.getForm().submit({ url : 'process.jsp' , success : function(fm, action) { if (action.result == true) { window.close(); } } }) ``` 2、process.jsp 页面处理完请求,弹出新页面Error.jsp 显示信息,并返回 true 到submit页面, submit页面接收到true 信息后关闭 ``` <% String errorStr = Getdata.doprocess(request); out.println("true"); %> <script type="text/javascript"> window.onload=function(){ var newWim=open("Error.jsp"); newWim.document.write("<%=errorStr%>"); }; </script> <% } %> ``` 问题描述:process.jsp 页面处理完请求后,新页面可以正常弹出,但submit页面接收不到“true”信息无法关闭。 ``` 如果去掉这一段代码,则submit页面就可以接受到“true”信息可以正常关闭 <script type="text/javascript"> window.onload=function(){ var newWim=open("Error.jsp"); newWim.document.write("<%=errorStr%>"); }; </script> ``` 如何在process.jsp 处理后弹出新页面Error.jsp,并返回true 给submit页面,使submit页面关闭?
EXTJS和struts2整合,提交后命名空间被改变
我在struts.xml文件中定义了两个包,二者的命名空间分别是"/king"和"/blank", 同时,在JSP中,用EXTJS构造了一个formPanel,其url设置成:url:"blank/blankAction.action"。 在提交的时候发生如下问题:There is no Action mapped for namespace /king and action name blankAction. - [unknown location]。 但当我用IE直接去访问那个URL(http://localhost:8080/DHME2/blank/blankAction.action)时, 却可以正常访问并得到一个JSON的数据。这表明我的Action类并没有问题。 看起来在提交的时候,提交url由“blank/blankAction.action”被改成了“king/blankAction.action”。 我不知道这是在EXTJS提交的时候改的还是struts2框架在做处理的时候改的。哪位高人能指教一下?谢谢了。 [b]配置文件代码如下:[/b][i][/i] <struts> <package name="example" namespace="/king" extends="tiles-default"> <!-- 注册action --> <action name="resister" class="ResisterAction"> <result name="success" type="tiles">resisterOK</result> <result name="input" type="tiles">reResister</result> <!-- 加入自定义的拦截器将覆盖默认的拦截器栈,所以要显性加入默认的defaultStack(如下句)。 --> <interceptor-ref name="logger" /> <interceptor-ref name="defaultStack" /> </action> </package> <!-- extjs的ajax测试用Action --> <package name="blankPackage" namespace="/blank" extends="json-default"> <action name="blankAction" class="BlankAction" method="execute"> <result type="json"/> <!-- 加入自定义的拦截器将覆盖默认的拦截器栈,所以要显性加入默认的defaultStack(如下句)。 --> <interceptor-ref name="logger" /> <interceptor-ref name="defaultStack"/> </action> </package> </struts> [b]jsp的代码:[/b][i][/i] // form contain tabs var tab2 = new Ext.FormPanel({ //labelAlign: 'top', title: '新用户信息', id:"resisterForm", bodyStyle:'padding:5px', //autoScroll:true, width: 555, items: [ { xtype:'tabpanel', plain:true,//tab页的背景色。设为true时无背景,为false时有背景 activeTab:0, height:510,//此长度决定纵向是否出现滚动条 defaults:{bodyStyle:'padding:10px'}, items:[{ title:'个人基本信息', layout:'form', autoScroll:true, defaults: {width: 500},//不能大于form的宽度,否则水平方向会出滚动条 defaultType: 'textfield', items: [ { xtype:"fieldset", title:"自然信息", defaults:{xtype:"textfield",width:180}, items:[ { fieldLabel: '姓名', name: 'user.username', allowBlank:false },{ fieldLabel: '性别', xtype:'radiogroup', name:'user.sex', width:180, items: [ {boxLabel: '男人', name: 'user.sex', inputValue: 1, checked: true}, {boxLabel: '女人', name: 'user.sex', inputValue: 2}, {boxLabel: '女博士', name: 'user.sex', inputValue: 3} ] },{ fieldLabel: '生日', name: 'user.birthday', format:'Y-m-d',//2009-01-02.格式说明要参考Date的API文档 xtype:'datefield' } ] } ] } ] } ],// form的主体部分结束 buttons: [{//form的按钮部分 text: '保存', handler:this.save, scope:this },{ text: '重置' },{ text: '取消' } ] // form的按钮部分结束 }); [b]// 提交的处理方法的代码:[/b][i][/i] function save(){ Ext.getCmp("resisterForm").getForm().submit({ waitTitle:"等等啊", waitMsg:'正在保存...', // ajax way url:"[b]blank/blankAction.action[/b][i][/i]", method:'POST', success:function(){ Ext.MessageBox.alert("save ok"); }, failure:function(){ Ext.MessageBox.alert("同志,出错了","出错了哈哈"); }, scope:this }); }
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问