怎么调用struts2里面action的不同方法?
<struts>
 <package name="MyMessage" extends="struts-default">
    <action name="users" class="UserAction" method="login">
       <result name="success">/message.jsp</result>
    </action>
 </package>


但现在还想在这个action中加入另一个方法register,请问jsp中的url该怎么写?struts2里面的action该怎么配?

3个回答

配置:



/message.jsp


/message.jsp


页面:
注册

代码:
public class UserAction(){
public String login(){
return SUCCESS;
}
public String register(){
return SUCCESS;
}

}




/message.jsp


/register.jsp


url=UserAction!register.do




/message.jsp


url=UserAction!register.do

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JSON调用Struts2的Action出错怎么处理
问题是这样的,我在页面上通过JQuery来使用JSON来调用action的方法来获得一些数据,用来更新页面上的信息。 $.getJSON("MyAction_initUsersForGroup?groupId="+groupId,false, function(json){ ..... } action里面initUsersForGroup方法大概如下: Public String initUsersForGroup(){ try{ users = dao.getUsersByGroupId(groupId); }catch(Exception e){ logger.error(e); throw new BusinessException("something wrong! code=123",e); } return JSON; } 那么在dao的方法没有抛出异常的时候,页面正常更新了。但是如果dao里面发生了异常,方法抛出去以后,页面那里就得不到任何消息了,即使我把这个exception抛出去了。 现在想要的效果是,当这个exception发生的时候,能在JSP页面的javascript代码那里得到exception的相关信息,然后组装成一个弹出窗口,请问有办法吗?谢谢了!
struts2调用servletAction的原理
struts2配置的是一个filter,它是怎么调用我们写的Action的 如果在filter里面调用的话,那么tomcat等容器还是要走servlet的流程,这时就没什么可以执行的了 或者struts2只是告诉tomcat等容器执行哪个Action类的哪个函数 另外,只有问题才能提问吗。论坛能提吗,我看论坛里面都是分享一些经验的帖子。
struts2 常量的写入与调用
有一套struts2系统,想要把系统配置信息(如系统样式、支撑服务器ip地址等)写到一个常量里面,需要在jsp和action里面调用这个常量,应该怎么做? 之前用session,可是总是过期,很难用。
关于Struts2中action会自动执行自定义的方法吗?
public String execute() throws Exception { return "hello"; } //log方法,Action调用的method方法 public String log()throws Exception{ System.out.println("log"); return "hello"; } //校验方法 public void validate() { System.out.println("validate"); } //log method的校验方法 public void validateLog(){ System.out.println("validatelog"); //age值必须在10-30之间 if(age<10||age>30) { addFieldError("age", "age must be from 10 to 30!"); } } struts.xml <package name="default" namespace="/" extends="struts-default"> <action name="login" class="com.action.LoginAction"> <!-- 返回hello.jsp --> <result name="hello">/hello.jsp</result> <!-- 校验出现问题,返回validationLogin.jsp --> <result name="input">/validateLogin.jsp</result> </action> </package> 我的问题是action标签里面没有写method属性,为什么会执行log()方法呢? 我以为就直接执行execute()方法就完了
struts2 在action里面什么时候要加namespace
比如<package name="user" namespace="/user" extends="struts-default"> 是不是在action里面 要加,调用的时候是user/user!login 在url 和result里面 直接调用user!login?
struts2中,action之间传递参数的问题
我现在需要把一个action(action1)中的变量传递到另外的一个action(action2)中,两个action中都定义了属性 String userId,User user,并且定义了相应的getter,setter方法,在struts.xml中配置如下: <action name="action1" class="Action1"> <result name="toLiginIndex" type="redirectAction" > <param name="actionName">Action2</param> <param name="namespace">/</param> <param name="user">${user}</param> <param name="userId">${userId}</param> <param name="test">test</param> </result> <result name="notLogIn">/index_notLogin.jsp</result> </action> 执行时,action2成功调用,但是里面的变量(userId,user)全为null。 为什么? 有帖子说,把type换成“chain”,我换了,还是null。 [b]问题补充:[/b] blareck: 我的两个action中有同名的参数,并且有getter,setter,为什么还是null?
struts2 循环调用路径问题
<struts> <constant name="struts.i18n.encoding" value="UTF-8" /> <package name="default1" namespace="/woca" extends="struts-default"> <action name="hellow" class="struts.createAction.FirstAction"> <result name="success"> /success.jsp </result> <result name="error"> /error.jsp </result> </action> </package> </struts> 在这个namespace的hellow.action中有两个方法, 一个跳到success.jsp一个跳到error.jsp。 success.jsp中有个链接通过hellow.action跳到error.jsp error.jsp中有个链接通过hellow.action跳到success.jsp 两个里面都是写的相对路径woca/hellow!toSuccess和woca/hellow!toError 这样循环的跳转几次出现了神奇的事情, url变成了http://localhost:8080/struts/woca/woca/woca/woca/hellow!toError 但是还是可以跳转成功,求大侠,小虾米们解释
关于 struts2 Action 的回写页面问题
<p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">struts2 里的 Action ,比如是 ListAction</span></span></p> <p> </p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">里面的属性要么是接受页面的数据,要么是页面所需要的结果 </span></span></p> <p> <br><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">那每次调用这个 Action 的时候他会不会从页面请求里自动填充? </span></span></p> <p> </p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">如果是 struts1 则可以用 ActionForm 来缓存数据,页面刷新后还会自动会写。</span></span></p> <p> </p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">可是在 struts2 里先给 ListAction 的某些成员变量赋值后,以后每次刷新页面,</span></span></p> <p> </p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">即使在请求里传入了参数值,页面刷新以后又变回了原来的默认值。</span></span></p> <p> </p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">比如我在 ListAction 里给如下变量赋值:</span></span></p> <p> </p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">//BookDao.ORDER_DEFAULT = 1;</span></span></p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">private int orderBy = BooKDao.ORDER_DEFAULT;<br><br>然后发请求时传参,如:list.action?orderBy=2;</span></span></p> <p> </p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">虽然在 ListAction 里 orderBy 的值改变了,但是刷新页面后还是原来的默认值。</span></span></p> <p> </p> <p> </p> <p><span style="font-size: small; color: #800080;"><span style="font-size: x-small;">请问各位,我这是哪里错了,还是有什么解决办法</span></span></p>
怎样做才能调用action中的方法,像调用service中的那样方便
最近在开发一个基于数据仓库的报表展示的项目,用的是SSH架构,项目已经开发的差不多了,最近客户又提出了动态首页的需求,具体是这样的:就是不同的用户有不同的报表阅读权限,那么他登陆系统后,首页上的报表也应该针对不同的权限有不同,所以就提出了动态首页的概念。 实现起来,我想到:专门开个动态首页的action,在里面遍历用户的菜单,随机选择几个链接,然后根据链接反射对应业务报表的action中的方法,得到其中的报表数据,再返回给动态首页的jsp。 于是问题来了:跳转业务报表的action中的方法是没有问题,可以实现,但是有去无回啊!!!一句mapping.findForward()就不知道跳到哪里去了,回不到原本调用它的地方了!唉~~~早知如此何必当初呢??我当时要是把封装报表数据的代码全部放到service中该有多好啊(现有的实现是在service中写sql查询数据,action中组装成jsp中要求的报表格式数据)!oh my God!现在杯具了!上百个报表的方法,难道一个个改过来???
struts2与velocity整合问题
struts2与velocity整合时,怎么向velocity传值?谢谢! 如直接用velocity的写法是 velocityContext.put("user","aaaaaaaaaaaa") 是不是不能直接向velocity中传值,而只能借助ValueStack [b]问题补充:[/b] [quote]velocity默认是通过ValueStack传值,跟freemarker一样,只要定义一个变量,然后,get set 就可以了。[/quote]是不是在Action中定义变量?谢谢!那如果我有很多的变量,要传进去,是不是要定义很多的变量啊,谢谢! [b]问题补充:[/b] 谢谢sunlightcs,这个操作好像不太方便。在Struts2中,没有直接操作velocityContext的地方吗?谢谢! [b]问题补充:[/b] [quote]这样操作应该比较方便啊,一般一个页面不会有很多的值,我现在做的项目,基本上都只要传一两个值就可以了,比如分页,就传一个List,就解决了,你多看看API吧![/quote] 谢谢sunlightcs,我现在在做系统后台管理页,有很多的东西要传进去,而且我的Action中,并不只有execute方法,有很多方法,如调用Action中的A方法时有a,b参数,调用B方法时,有b,c,d参数,调用C方法时,有d,f参数,那现我现在Action中加a,b,c,d,f变量。这样就觉得麻烦了,呵。。您还有什么好的方法吗?您的那个例子,List是在execute方法中算出来,赋值的吧? [b]问题补充:[/b] [quote]execute这个方法我从来就不用了,我一般都是用自定义方法. 你也可以传一个对象到页面啊,如User 里面的所有属性都到页面了,要用name属性,直接${User.name}.[/quote]这个明白,谢谢! [b]问题补充:[/b] 谢谢 蔡华江
struts1中报找不到方法错误,急求解
我用的是struts1+spring+jap搭建的框架,但是在调用里面的方法的时候报找不到方法 我测试了很多次 确定方法是对的,是继承了的DispatchAction的类找不到方法,我在其他类中继承了Action的找得到方法(这里面我重写的execute),我不明白为什么继承了DispatchAction类找不到方法,很是纠结……希望大家帮助,谢谢了…… 代码下面: [img]http://dl.iteye.com/upload/attachment/539930/de9cb1d5-988b-3603-a91f-f271d5cca2e7.jpg[/img] [img]http://dl.iteye.com/upload/attachment/539932/cebfc969-7c5a-3601-8131-de42eff30128.jpg[/img] [img]http://dl.iteye.com/upload/attachment/539934/a0a0ff64-26eb-314d-a4f3-12fd0dad4ee6.jpg[/img]
struts2.1.8 ,使用自带json插件struts2-json-plugin-2.1.8.1.客户端得不到json对象,弹出下载action提示框
struts2.1.8 ,使用自带struts2-json-plugin-2.1.8.1.jar把action对象返回客户端的json对象。注释配置,客户端总是弹出下载页面,打开后是正常的json数据,各位可以帮忙看看?代码很简单,困老好几天了,非常感谢,代码如下: Java代码 import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.test.product.bean.ScmProdUnit; import com.opensymphony.xwork2.ActionSupport; @Controller @Scope("prototype") @ParentPackage("json-default") @Results( { @Result(name = "success",type = "json") }) public class JsonTestAction extends ActionSupport { private static final long serialVersionUID = -6933656224417288484L; private ScmProdUnit scmProdUnit; // @Action(results={@Result(type="json",name="success",params ={"root","scmProdUnit" })}) public String querybyB() throws Exception { System.err.println("2222222"); scmProdUnit = new ScmProdUnit(); scmProdUnit.setId(1); scmProdUnit.setCode("jsoncode"); scmProdUnit.setName("json数据"); scmProdUnit.setRemark("测试"); return SUCCESS; } public ScmProdUnit getScmProdUnit() { return scmProdUnit; } public void setScmProdUnit(ScmProdUnit scmProdUnit) { this.scmProdUnit = scmProdUnit; } } } @Controller @Scope("prototype") @ParentPackage("json-default") @Results( { @Result(name = "success",type = "json") }) public class JsonTestAction extends ActionSupport { private static final long serialVersionUID = -6933656224417288484L; private ScmProdUnit scmProdUnit; // @Action(results={@Result(type="json",name="success",params ={"root","scmProdUnit" })}) public String querybyB() throws Exception { System.err.println("2222222"); scmProdUnit = new ScmProdUnit(); scmProdUnit.setId(1); scmProdUnit.setCode("jsoncode"); scmProdUnit.setName("json数据"); scmProdUnit.setRemark("测试"); return SUCCESS; } public ScmProdUnit getScmProdUnit() { return scmProdUnit; } public void setScmProdUnit(ScmProdUnit scmProdUnit) { this.scmProdUnit = scmProdUnit; } } } ProdUnit 只是一个很简单的pojo,前台代码如下 Java代码 function getjsontest() { $.post("json-test!querybyB.action", { },function(returnData,status) { if("success" == status) { alert(returnData.length); } },"json" ); } function getjsontest() { $.post("json-test!querybyB.action", { },function(returnData,status) { if("success" == status) { alert(returnData.length); } },"json" ); } 当我在一个测试页面button里掉这个function时候,总是弹出action下载页面,下载打开后,里面的json对象数据好像没错啊,如下: {"scmProdUnit":{"code":"jsoncode","id":1,"name":"json数据","remark":"测试"}},调用js的时候returnData总是返回null值,为啥啊?郁闷了几天了,麻烦看看
新手求大神看看Struts2的preparable接口问题。
跟着尚硅谷的框架整合学的,有一步实在觉得奇怪。 <td><a href="emp-input?id=${id }" >编辑</a></td>这是前端jsp页面的一个链接。 我在action中加了id这个属性,按道理struts会将这个id值写到action的成员变量id中,并调用input方法,然后这个action实现了preparable接口,于是加上了 public void prepareInput() { System.out.println(id); if(id != null){ model = employeeService.getEmployeeById(id); System.out.println(model); } } public String input() { request.put("departments", departmentService.getAll()); System.out.println(id); return INPUT; } 也就是说会先调用prepareInput()方法,再调用input方法,可是prepareInput无法获得id的值(打印出来显示是null),但input方法里面打印出来是有id的,也就是说只有input被调用时id才会set进来,但是视频里prepareInput中id是可以获取的,这是为什么?
请教Struts2 ActionContext线程安全问题
Struts2 线程安全,大多都是在就action是线程安全,小弟有个愚蠢的问题:是不是说 ActionContext 这个类可以在任何地方直接调用?(如在Service层或其它自己写的类里,直接调用ActionContext,从里面获取request parameters等变量)而不会造成多用户的线程安全,数据混乱的情况?同理ServletActionContext也是不是可以在任何地方直接调用?因为这些类都使用ThreadLocal,谢谢。 [b]问题补充:[/b] 是不是说 ActionContext 这个类可以在任何地方直接调用?如Service层?????????????? [b]问题补充:[/b] 谢谢你们的回答,其实我不是想验证类中使用,请参考这个 http://www.iteye.com/problems/34205或 http://www.iteye.com/topic/569841 我最担心的是多用户下,ActionContext value stack中findValue(...)会不会出现混乱的情况。谢谢
Struts2返回到浏览器的Json的文本格式一直带转义过的双引号和反斜杠
Struts2里面的Action对象的result的String Print出来的结果没有问题 {"id":"4028efd439422d260139422d2a530000","name":"department"} 在Struts.xml里面配置的 <package name="jsons" namespace="/" extends="json-default"> <action name="jsoninfo" class="personAction"> <result name="department" type="json"> <param name="root">result</param> </result> </action> </package> 然后再浏览器中输入对应的地址调用 返回的结果是: "{\"id\":\"4028efd439422d260139422d2a530000\",\"name\":\"department\"}" 说明返回成果,但是文本的格式我用Jquery 的json完全不能解析这样子格式的对象,如果当做string类型来拆分过滤掉引号和反斜杠岂不有些多此一举,我只能想象可能是我哪里没有设置什么,请大家过目。 在$.ajax中返回的的是正在的JSON格式的对象,我认为是在最后的输出过程中做了一次我不想要的转义,求解。 例如: JSONUtil.serialize(obj.toString()); 我只想在浏览器中得到这样子的结果 {"id":"4028efd439422d260139422d2a530000","name":"department"}
ssh中在action中调用service中的方法出现空指针异常
public class LinkManAction extends ActionSupport implements ModelDriven<LinkMan>{ private LinkManService linkManService; public void setLinkManServie(LinkManService linkManServie) { this.linkManService = linkManService; } //注入客户的service对象 private CustomerService customerService; public void setCustomerService(CustomerService customerService) { this.customerService = customerService; } //1到新增联系人页面的方法 public String toAddPage(){ //1.1查询所有客户,把所有客户list集合传递到页面中显示 //调用客户service里面的方法得到所有客户 List<Customer> listCustomer = customerService.findAll(); ServletActionContext.getRequest().setAttribute("listCustomer", listCustomer); return "toAddPage"; } //2 联系人列表的方法 public String list() { List<LinkMan> list = linkManService.listLinkMan(); ServletActionContext.getRequest().setAttribute("list", list); return "list"; } } type Exception report message description The server encountered an internal error that prevented it from fulfilling this request. exception java.lang.NullPointerException cn.itcast.action.LinkManAction.list(LinkManAction.java:87) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:891) ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1293) ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68) com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:117) com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:108) ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1369) ognl.ASTMethod.getValueBody(ASTMethod.java:90) ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) ognl.SimpleNode.getValue(SimpleNode.java:258) ognl.Ognl.getValue(Ognl.java:494) ognl.Ognl.getValue(Ognl.java:458) com.opensymphony.xwork2.ognl.OgnlUtil$2.execute(OgnlUtil.java:309) com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecute(OgnlUtil.java:340) com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:307) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:423) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:287) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:250) org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:125) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:253) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) org.springframework.orm.hibernate5.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
新手请教JSF的action调用的问题
<p> </p> <p>刚开始接触JSF,对于action的调用有点不清楚,只知道是基于事件的。</p> <p> </p> <p>迷茫的主要是关于action自动加载的问题。比如在struts里标签&lt;s:action name="xxx.do" executeResult="true" /&gt; 就能加载xxx.do这个action并且把action执行后的页面也加载进来</p> <p> </p> <p>在jsf里是通过什么方案主动加载数据的呢?</p> <p> </p> <p>比如我打开一个index.jsp 里面有个table,数据是调用action取数据库得到的数据,我们要实现在打开这个页面的时候,自动执行那个action,类似于&lt;s:action &gt;的作用,这个是怎么实现的?有啥方案?? 不要和我说用seam =。=,就单单JSF本身这个框架怎么实现这个?</p> <div><br></div>
js怎么修改struts2的控件呢?
<s:iterator value="bankVoList" id="bankVo" status="bv"> <div align="center"><s:property value="#bankVo.name"/></div> </s:iterator> 现在要修改iterator的value值,在js里面用ajax调用 var xmlHttp; try{ xmlHttp=new XMLHttpRequest(); } catch (e){ // Internet Explorer try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ } } } var url="test.action"; xmlHttp.open("GET", url,true); xmlHttp.onreadystatechange = function(){ alert(xmlHttp.readyState); if (xmlHttp.readyState == 4) { document.getElementById("bankVo").value=xmlHttp.responstText; } }; xmlHttp.send(null); 结果报document.getElementById(..)为空或不是对象..怎么解决呢?
模糊查询分页hibernate struts
我在数据库里面查询所有记录 (进行了分页),然后在jsp页面想模糊查询后在分页就不知道怎么写了。 用的是hibernate + struts .比如在a.jsp显示所有记录分页,然后提供模糊查询后结果显示在 a.jsp然后将模糊查询的结果也进行分页 ,不知道怎么调用action
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
MyBatis研习录(01)——MyBatis概述与入门
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往——自定义View系列教程(10篇) 走出思维困境,踏上精进之路——Android开发进阶精华录 讲给Android程序员看的前端系列教程(40集免费视频教程+源码) 版权声明 本文原创作者:谷哥的小弟 作者博客
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
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来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,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
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
渗透测试-灰鸽子远控木马
木马概述 灰鸽子( Huigezi),原本该软件适用于公司和家庭管理,其功能十分强大,不但能监视摄像头、键盘记录、监控桌面、文件操作等。还提供了黑客专用功能,如:伪装系统图标、随意更换启动项名称和表述、随意更换端口、运行后自删除、毫无提示安装等,并采用反弹链接这种缺陷设计,使得使用者拥有最高权限,一经破解即无法控制。最终导致被黑客恶意使用。原作者的灰鸽子被定义为是一款集多种控制方式于一体的木马程序
Python:爬取疫情每日数据
前言 有部分同学留言说为什么412,这是因为我代码里全国的cookies需要你自己打开浏览器更新好后替换,而且这个cookies大概只能持续20秒左右! 另外全国卫健委的数据格式一直在变,也有可能会导致爬取失败! 我现在已根据2月14日最新通报稿的格式修正了! 目前每天各大平台,如腾讯、今日头条都会更新疫情每日数据,他们的数据源都是一样的,主要都是通过各地的卫健委官网通报。 为什么已经有大量平台做
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
粒子群算法求解物流配送路线问题(python)
粒子群算法求解物流配送路线问题(python) 1.查找论文文献 找一篇物流配送路径优化+粒子群算法求解的论文 参考文献:基于混沌粒子群算法的物流配送路径优化 2.了解粒子群算法的原理 讲解通俗易懂,有数学实例的博文:https://blog.csdn.net/daaikuaichuan/article/details/81382794 3.确定编码方式和解码策略 3.1编码方式 物流配送路线的
教你如何编写第一个简单的爬虫
很多人知道爬虫,也很想利用爬虫去爬取自己想要的数据,那么爬虫到底怎么用呢?今天就教大家编写一个简单的爬虫。 下面以爬取笔者的个人博客网站为例获取第一篇文章的标题名称,教大家学会一个简单的爬虫。 第一步:获取页面 #!/usr/bin/python # coding: utf-8 import requests #引入包requests link = "http://www.santostang.
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
相关热词 c#时间格式化 不带- c#替换字符串中指定位置 c# rdlc 动态报表 c# 获取txt编码格式 c#事件主动调用 c#抽象工厂模式 c# 如何添加类注释 c# static块 c#处理浮点数 c# 生成字母数字随机数
立即提问