struts2继承struts-default为空

Package bbb extends undefined package struts-default

1个回答

应该是缺了struts2的jar包吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
struts2配置文件一个package继承另一个package,一个奇怪问题

我写了一个登陆和显示用户信息两个页面,在配置文件中分别对应login和showUserInfo两个action 但我将这个两个action分别放到struts-login和struts-show这两个package中 我想让登陆成功后用直接用redirectAction进去用户显示界面 下面是配置文件信息: ``` <package name="struts-login" namespace="/login" extends="struts-show"> <action name="login" class="org.javaweb.action.LoginAction"> <result name="success" type="redirectAction">showUserInfo</result> <result name="input">/jsp/login.jsp</result> </action> </package> ``` ``` <package name="struts-show" namespace="/" extends="struts-default"> <action name="showUserInfo" class="org.javaweb.action.ShowUserInfoAction"> <result name="success" >/jsp/show_message.jsp</result> </action> </package> ``` 我运行能正常运行,但一直会显示一个错误提示 ![图片说明](https://img-ask.csdn.net/upload/201612/02/1480673616_428164.jpg) 错误提示说在/login这个命名空间中找不到showUserInfo 我该怎么改才能将错误提示去除掉?

各位大神帮帮忙!!!struts2 我的类继承ActionSupport后,里面的普通方法不能访问?

《struts》 《package name="default" namespace="/" extends="struts-default"》 《action name="third" class="com.bjsxt.struts2.ThirdAction"》 《result》/ok.jsp《/result》 《/action》 《/package》 《/struts》 public class ThirdAction extends ActionSupport { /*@Override public String execute() throws Exception { System.out.println("我是execute"); return SUCCESS; }*/ public String test() throws Exception{ return SUCCESS; } } 访问这个url:http://localhost:8080/teststruts01/third!test 报这个错误:HTTP Status 404 - There is no Action mapped for namespace [/] and action name [third!test] associated with context path [/teststruts01]. 是怎么回事啊

最简单的struts2程序,总是提示404,求大神指点

<?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:相当于java的类包,用来管理一组功能相关的action,包名必须唯一,供继承使用 namespace:作为访问该包下action的一部分 extends:每个包都应该继承struts-default包, --> <package name="itcast" namespace="/test" extends="struts-default"> <!--action name:作为访问这个action路径的一部分 class,method... --> <action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" > <result name="success">/WEB-INF/page/Hello.jsp</result> </action> </package> </struts> ``` <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 --> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> ``` package cn.itcast.action; public class HelloWorldAction { private String msg; public String getMsg() { return msg; } public String execute(){ System.out.println("......."); msg = "我的第一个struts2应用"; return "success"; } } ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'Hello.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> ${msg } </body> </html> ``` ![图片说明](https://img-ask.csdn.net/upload/201601/12/1452595208_640718.png)

ssh的struts2拦截器拦截请求后页面为什么没有跳转

我在struts.xml里把拦截器添加到了新的拦截器栈,命名了一个package名,然后我在一个子的struts-action-index.xml里继承了这个package做登录验证,并且程序执行时已经进入了拦截器类,并且执行完了类里的代码,返回了Action.Login,为什么通过全局返回处理页面没有跳转到登录页面 ``` <package name="struts-default-json" extends="struts-default"> <!-- 返回json类型数据 --> <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult" /> </result-types> <!-- 自动把页面传来的json解析成action中的对象 --> <interceptors> <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor" /> <interceptor name="checkLogin" class="com.gtjc.interceptor.CheckInterceptor"/> <interceptor-stack name="myDefaultStack"> <interceptor-ref name="checkLogin"/> <interceptor-ref name="json" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="myDefaultStack" /> <!-- 定义全局返回处理 --> <global-results> <result name="login" >/gtjc/login/jump.jsp</result> </global-results> </package> ``` ``` public String intercept(ActionInvocation in) throws Exception { System.out.println("进入拦截器"); User user=(User)ServletActionContext.getRequest().getSession().getAttribute("user"); if(user==null ){ return Action.LOGIN; }else{ return in.invoke(); } } ```

关于struts2中拦截器(interceptor)的问题!!

<pre name="code" class="java"> &lt;!-- 系统级包 --&gt; &lt;package name="systemPackage" extends="struts-default,json-default" abstract="true"&gt; &lt;interceptors&gt; &lt;interceptor name="status" class="com.util.statusInterceptor" /&gt; &lt;interceptor-stack name="systemStack"&gt; &lt;interceptor-ref name="status"&gt; &lt;param name="loginResult"&gt;redirectLogin&lt;/param&gt; &lt;param name="excludeActions"&gt; image,login &lt;/param&gt; &lt;/interceptor-ref&gt; &lt;interceptor-ref name="paramsPrepareParamsStack"&gt;&lt;/interceptor-ref&gt; &lt;/interceptor-stack&gt; &lt;/interceptors&gt; &lt;default-interceptor-ref name="systemStack" /&gt; &lt;global-results&gt; &lt;result name="login"&gt;/login.jsp&lt;/result&gt; &lt;result name="redirectLogin" type="redirect"&gt;/login.jsp &lt;/result&gt; &lt;/global-results&gt; &lt;/package&gt;</pre> <p> </p> <p>以下是问题:</p> <p>1--这个包被所有的包继承,   那么这里面的interceptor  和interceptor-stack  都会执行吗? 还是说只执行default-interceptor-ref ?????</p> <p> </p> <p>2--其次,&lt;interceptor-ref name="paramsPrepareParamsStack"&gt;&lt;/interceptor-ref&gt;有什么作用?</p> <p> </p> <p>3--拦截器和拦截器栈有什么区别?   为什么配置了一个interceptor   又配置个interceptor-stack ???  不是多此一举吗?</p>

struts2中处理自定义异常的问题,求大神帮忙

先上代码: struts.xml ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <!-- 请求参数的编码方式 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开 --> <constant name="struts.configuration.xml.reload" value="true" /> <!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 将struts2委托Spring管理 --> <constant name="struts.objectFactory" value="spring" /> <!-- 是否开启动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开 --> <constant name="struts.devMode" value="true" /> <!-- 设置默认的父包,一般我们都设置一个default包继承自struts-default。大部分类再继承default。如果有特殊的类需要特殊的包,只能在action中再指定父包了。 --> <constant name="struts.convention.default.parent.package" value="default" /> <!-- 默认配置包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。通过设置struts.convention.package.locators属性来修改这个配置。 --> <constant name="struts.convention.package.locators" value="action,actions,controller,web" /> <!-- 约定Action类名:要求Action的命名必须以Action为后缀,可以使用下面常量来修改后缀限制 --> <constant name="struts.convention.action.suffix" value="Action" /> <package name="default" extends="struts-default"> <global-results> <!-- <result name="error1">/commons/error1.jsp</result> --> <result name="error2">/commons/error2.jsp</result> <result name="login">/login/login.jsp</result> </global-results> <global-exception-mappings> <!-- <exception-mapping result="error1" exception="java.lang.Exception"/> --> **<exception-mapping result="error2" exception="com.lz.shop.web.action.MyException" />** <exception-mapping result="sqlException" exception="java.sql.SQLException" /> </global-exception-mappings> </package> </struts> ``` <exception-mapping result="error2" exception="com.lz.shop.web.action.MyException" /> 这一句为什么会无效呀?试了很多办法都不行 求大神解答! 自定义异常类: MyException.java ``` package com.lz.shop.web.action; public class MyException extends Exception { /** * */ private static final long serialVersionUID = -4567535714727601736L; public MyException() { super(); } private String message="bmddddd"; public MyException(String message) { this.message = message; } public String getMessage() { return message; } } ``` error2.jsp ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>ERROR1</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <span>ERROR2</span> <s:fielderror></s:fielderror> <s:property value="exception.message" /> </body> </html> ``` Action测试类: LoginAction.java ``` package com.lz.shop.web.action; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.lz.shop.entity.base.User; import com.lz.shop.web.BaseSupport; @Scope @Controller @Namespace("/user") @ParentPackage("default") public class LoginAction extends BaseSupport { /** * */ private static final long serialVersionUID = 6336185736252504861L; private User user; /** * 验证登陆 * * @return */ @Action(value = "loginAction", results = { @Result(name = "success", location = "/index.jsp", type = "redirect"), @Result(name = "input", location = "/login/login.jsp") }) public String login() { //抛个空指针异常来测试 if (user.getUsername() == "1" && user.getPassword() == "1") { System.out.println("success"); return "success"; } else { System.out.println("input"); return "input"; } } public User getUser() { return user; } public void setUser(User user) { this.user = user; } } ``` struts2版本是2.2.1 求大神支招!!!

struts 2 里session传值的问题

为什么在JSP页面接收SESSION的值总是NULL呢 LoginAction.java public class LoginAction extends ActionSupport{//这个类继承了ActionSupport类, private String userid; private String password; 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 execute(HttpServletRequest request) throws Exception { RegisterDAO dao = new RegisterDAO(); List<User> userlist1 = dao.allUsers(); for(int i=0;i<userlist1.size();i++){ if (userlist1.get(i).getUserid().equals(this.userid)&&userlist1.get(i).getPassword().equals(this.password)){ request.getSession().setAttribute("id", this.userid); return "success"; } } return "fail"; } } struts.xml <struts> <package name="default" extends="struts-default"> <action name="login" class="bean.LoginAction"> <result name="success">/success.jsp</result> <result name="fail">/error.jsp</result> </action> </package> </struts> 主页面jsp <body> <% String b=(String)session.getAttribute("id"); out.print(b); %> </body> 结果显示null

struts2.0一直说没有方法是什么原因

报异常:java.lang.NoSuchMethodException: org.zttc.itat.action.XinwenAction.detail() ``` <action name="*_*_*" class="{2}Action" method="{3}"> <!-- 在action中引入相应的拦截器,如果在action中引入了相应的拦截器之后, 原有的继承于struts-default.xml的拦截器就不起作用了,此时需要手动引入 --> <result>/WEB-INF/{1}jsp/{2}/{3}.jsp</result> <result name="input">/WEB-INF/jsp/{2}/{3}Input.jsp</result> <result type="redirect" name="redirect">${url}</result> <result type="json" name="json"> <param name="root">list</param> </result> </action> ``` 我的调用是:front_xinwen_detail.action?newsId=${news.id } 可以确定该action下有detail()方法. 这是什么问题?

Struts2通过SessionAware接口,传值传到JSP

struts: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="user" namespace="/" extends="struts-default"> <action name="testActionContext" class="com.qst.action.TestActionContext"> <result name="success">/welcome.jsp</result> </action> <action name="testAware" class="com.qst.action.TestAwareAction"> <result name="success">/welcome.jsp</result> </action> </package> </struts> Action: package com.qst.action; import java.util.Map; import org.apache.struts2.interceptor.ApplicationAware; import org.apache.struts2.interceptor.ParameterAware; import org.apache.struts2.interceptor.RequestAware; import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionSupport; public class TestAwareAction extends ActionSupport implements SessionAware,RequestAware,ApplicationAware,ParameterAware{ private static final long serialVersionUID = 1L; private Map<String, Object> session; private Map<String, String[]> parameter; private Map<String, Object> application; private Map<String, Object> request; /** * 向Action中注入Session */ public void setSession(Map<String, Object> session) { this.session=session; } @Override public void setParameters(Map<String, String[]> parameter) { // TODO Auto-generated method stub this.parameter=parameter; } @Override public void setApplication(Map<String, Object> application) { // TODO Auto-generated method stub this.application=application; } @Override public void setRequest(Map<String, Object> request) { // TODO Auto-generated method stub this.request=request; } public String exectue(){ this.session.put("sessionKey", "sessionValue"); this.request.put("requestKey", "requestValue"); this.application.put("applicationKey", "applicationValue"); return "success"; } } JSP: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path=request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <head> <base href="<%=basePath%>"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> application:${applicationScope.applicationKey }<br> session:${sessionScope.sessionKey }<br> request:${requestScope.requestKey }<br> useName:${param.userName }<br> password:${param.password }<br> </body> </html>

struts2异常java.lang.NoSuchMethodException: com.struts.action.UserAction.create()

原来用的struts2.0版本,运行项目没有问题。后来换了struts2.2.1版本后,只要访问Action,都会出现 java.lang.NoSuchMethodException: com.struts.action.UserAction.create()类似的错误,就是说Action中找不到create这个方法。 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> <include file="defaults.xml"></include> <package name="struts.action.user" namespace="/user" extends="struts-default"> <interceptors> <interceptor name="loginInterceptor" class="com.innoact.struts.interceptor.LoginInterceptor"> </interceptor> </interceptors> <action name="user_*" class="com.innoact.struts.action.UserAction" method="{1}"> <interceptor-ref name="loginInterceptor"> <param name="excludeMethods">login,register</param> <param name="includeMethods">update</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> <result name="success">/main.jsp</result> <result name="login">/index.jsp</result> </action> </package> </struts> [/code] 我设定的是方法拦截,所以当进入user_update.action的时候,没有问题,因为它可以进入拦截器。但是我没有拦截login和register方法,进入这两个方法时就会出错。说找不到create方法。我Action里面没有这个方法,肯定找不到。而且继承的ActionSupport的里面也没有这个方法,只有excute方法。不知道为什么struts会非要找这个create方法!后来上网查了半天,人家说去掉<include file="defaults.xml"></include>这部分就可以。 defaults.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="defaults" extends="struts-default"> <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.NullPointerException" result="error" /> <exception-mapping exception="java.lang.Exception" result="error" /> </global-exception-mappings> </package> </struts> [/code] 试了下,果然奏效。但是用原来struts2.0的版本没有这样的问题啊!不知道为什么,哪位高人来解释下,感激不尽!最好能带 struts的源代码分析下!还有struts2.0和2.1之后的地方,有哪些区别? Oh My God!现在又不行了。不知道是不是我刚才手动加的create方法没去掉,现在又报这个错误,蛋疼啊!高手速来解答!感激不尽啊!

SSH搭建好了之后开始测试Struts的Action 转到自己写的404页面

按照李刚的struts讲义写的action 功能是输入用户名密码之后跳转到另外的jsp页面.但是每次都出来404页面.请问是哪边配置有问题? 如果另外ssh框架也没建好还请指正.以下是代码[code="web.xml"]<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Archetype Created Web Application</display-name> <!-- 以下3项参数与log4j的配置相关 --> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <!-- 默认情况下,会加载WEB-INF/applicationContext.xml这个文件,我们可以通过配置 contextConfigLocation参数改变配置文件的路径 --> <!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔 此参数用于后面的Spring-Context loader --> <!-- 使容器启动时,自动加载applicationContext配置,因为它实现了ServletContextListener这个接口,容器启动时会自动执行它实现的方法。 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:*/ApplicationContext.xml,*/action-Servlet.xml</param-value> </context-param> <!-- 加载spring容器 --> <!-- 整合struts 加入中心拦截器 --> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> <init-param> <param-name>struts.action.extendion</param-name> <param-value>action</param-value> </init-param> </filter> <!-- <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>--> <!-- Struts --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts.xml</param-value></init-param> <load-on-startup>2</load-on-startup> </servlet> <!-- session超时定义,单位为分钟 --> <session-config> <session-timeout>120</session-timeout> </session-config> <!-- 默认首页定义 --> <welcome-file-list> <welcome-file>login2.jsp</welcome-file> </welcome-file-list> <!-- Error Page定义 --> <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/commons/error.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/commons/error.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/commons/404.jsp</location> </error-page> <error-page> <error-code>403</error-code> <location>/commons/403.jsp</location> </error-page> </web-app> [/code] [code="strut.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> <constant name="struts.devMode" value="true"/> <constant name="struts.objectFactory" value="spring" ></constant> <package name="calvin" extends="struts-default"> <action name="login" class="/loginAction"> <result name="error">index.jsp</result> <result name="success">/pages/index.jsp</result> </action> </package> </struts>[/code] [code="ApplicationContext.xml"]<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- Spring容器配置文件 --> <!-- 告诉spring hibernate文件的位置 然后加载 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/policemanagement?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="rooot"/> <property name="maxActive" value="100"/> <property name="maxIdle" value="30"/> <property name="maxWait" value="1000"/> <property name="defaultAutoCommit" value="true"/> <property name="removeAbandoned" value="true"/> <property name="removeAbandonedTimeout" value="60"/> <property name="logAbandoned" value="true"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mappingResources" > <list> <value>calvin/po/pojo/hbm/arrestedPerson.hbm.xml</value> <value>calvin/po/pojo/hbm/caseRegisted.hbm.xml</value> <value>calvin/po/pojo/hbm/caseThread.hbm.xml</value> <value>calvin/po/pojo/hbm/caseVictim.hbm.xml</value> <value>calvin/po/pojo/hbm/policeOfficer.hbm.xml</value> <value>calvin/po/pojo/hbm/victimOffice.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hbm2ddl.auto">create</prop> </props> </property> </bean> <!-- 为hibernte配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- daoContext 配置原因 所以放在这边 --> <bean id="dao" class="calvin.dao.imp.BaseDAOHibernate"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="policeOfficerDAO" class="calvin.dao.imp.PoliceOfficerImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="arrestedPersonDAO" class="calvin.dao.imp.ArrestedPersonImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseRegisteredDAO" class="calvin.dao.imp.CaseRegisteredImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseThreadDAO" class="calvin.dao.imp.CaseThreadImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseVictimDAO" class="calvin.dao.imp.CaseVictimImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="victimOfficeDAO" class="calvin.dao.imp.VictimOfficeImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <!-- ENd --> <!-- IOC 注入机制 --> <!-- 定义事务模板类 --> <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <!-- 注入事务管理器 --> <property name="transactionManager" ref="transactionManager"/> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property></bean> <!-- 配置具体业务逻辑层组件的事物代理 --> <bean id="manager" parent="txProxyTemplate"> <property name="target"> <bean class="calvin.service.BaseManager"> <property name="dao" ref="dao"/> </bean> </property> </bean> <!-- 配置具体的业务逻辑组件额事务代理 --> <!-- 配置业务逻辑组件的事务代理,使用了bean 的继承 --> <!-- 配置所需要的dao组件!!!即这里用的是dao的名字 --> <bean id="facadeManager" parent="txProxyTemplate"> <!-- 配置事务代理时,指定代理的目标,此处的目标是嵌套bean--> <property name="target"> <!-- 嵌套bean无须使用 id属性--> <bean class="calvin.service.imp.FacadeManagerImp"> <!-- 为业务逻辑组件注入DAO组件 --> <property name="victimOfficeDAO" ref="victimOfficeDAO"/> <property name="policeOfficerDAO" ref="policeOfficerDAO"/> <property name="caseVictimDAO" ref="caseVictimDAO"/> <property name="caseThreadDAO" ref="caseThreadDAO"/> <property name="caseRegisteredDAO" ref="caseRegisteredDAO"/> <property name="arrestedPersonDAO" ref="arrestedPersonDAO"/> </bean></property> </bean> <!-- action --> <bean id="myService" class="calvin.action.test.MyServiceImp"/> <bean name="/loginAction" class="calvin.action.LoginAction" scope="prototype"> <property name="ms" ref="myService"/> </bean> </beans>[/code] [code="LoginAction"]package calvin.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.junit.Test; import calvin.action.baseAction.BaseAction; import calvin.action.test.MyService; import calvin.po.pojo.PoliceOfficer; public class LoginAction extends BaseAction{ private String username; private String password; private MyService ms; public MyService getMs() { return ms; } public void setMs(MyService ms) { this.ms = ms; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String execute() throws Exception{ System.out.println("AAA"); if(ms.valid(getUsername(),getPassword())){ return new String("success"); }else{ return "error";} } } [/code] [code="MyServiceImp"]package calvin.action.test; public class MyServiceImp implements MyService{ public boolean valid(String username,String pass){ return true; } } [/code] 首页配置就是一个很简单的登陆页面.

struts2 BaseAction该如何写

我们在玩struts1的时候,通常都会 extends Action 然后写一个public void setServlet(ActionServlet actionServlet) { this.managerFacade = (ManagerFacade) wac.getBean("managerFacade");} 每个action都继承这个action,省去了每个action都得setDAO的代码。 这样的功能 在struts2中该如何实现呢? [b]问题补充:[/b] 大家回答的有点太深奥了 没看懂(文化程度有限,高中都没读过) 说struts2和spring天然 结合 是什么概念? 我用了spring,也用了hibernate 用了spring Bean工厂 我的action和daoImpl 在applicationContext.xml都有配置 是不是 我的action中可以直接拿到dao对像,而不用 在写setdao了? 比如我的loginAction,我在spring中有一个userdao 我在loginAction中是不是可以 直接使userdao中的方法,不用setdao? 如何搞? [b]问题补充:[/b] to:上一站,火星 我的spring配置文件是这样的 <beans default-autowire="byName"> <bean id="userDAO" class="user.DAOImpl" <bean id="loginAction" class="com.LoginAction 我struts配置文件 <action name="loginAction class="loingAction" 我的配置文件如何改 才能类型注入, 我的action中怎么直接使dao中的方法 [b]问题补充:[/b] 我的LoginAction public class LoginAction extends ActionSupport{ private static final long serialVersionUID = 7592871230236282753L; private ManagerFacade managerFacade; private String userId; private String userPassword; @SuppressWarnings("unchecked") public String execute(){ String status = "success"; User user = null; if (!"".equals(this.getUserId()) && null != this.getUserPassword()){ user = managerFacade.getUserByUserId(userId); } } 怎程序运行到managerFacade.getUserByUserId(userId);这句就报错。 空指针错误。 可能是哪里出的问题? [b]问题补充:[/b] public void setManagerFacade(ManagerFacade managerFacade) { this.managerFacade = managerFacade; } 写了set方法。 [b]问题补充:[/b] cats_tiger 写得4条中,只有第3条我没看懂。 我这样写的。 <bean id="loginAction" class="com.banner.actions.login.LoginAction"> <property name="managerFacade" ref="managerFacade"></property> </bean> 我在struts配置中用的是beanid 可是我 用了<property name="managerFAcade" />报告必须写ref 我不知道ref和name都应该写啥。 是都写 dao的名字吗? [b]问题补充:[/b] 感谢cats_tiger。搞定了。 没有分了,不能在发贴子问我的login不成功的问题。 只能在这里问了。 为啥有些时候 我提示登录请求,压根就没有进入到action,直接提示我,用户名或密错误呢? public class LoginAction extends ActionSupport{ private static final long serialVersionUID = 7592871230236282753L; private ManagerFacade managerFacade; private static String userId; private static String userPassword; @SuppressWarnings("unchecked") public String execute() throws Exception{ String status = "success"; User user = null; if (!"".equals(this.getUserId()) && null != this.getUserPassword()){ user = managerFacade.getUserByUserId(userId); } if (validateUser(user,this.getUserPassword())){ ActionContext.getContext().getSession().put(Constant.SESSION_USER_KEY, user);//将登录的用户信息存入到session中 ActionContext.getContext().getSession().put(Constant.SESSION_USER_PERMISSION,permissionList ); status = "success"; }else{ addFieldError("userPassword",getText("login.error")); status = "input"; } return status; } 我的loginAction代码在此。省略了 getter/setter. [b]问题补充:[/b] 写完 scope="prototype"之后报告这个错误。 Attribute "scope" must be declared for element type "bean". 而且myeclipse也把scope标红了。 把session那段代码删掉,删掉发布,重起计算机,在起tomcat 也有这个问题。 [b]问题补充:[/b] 我用的是spring2.5.5 这么一问,我仔看了一下,怎我的spring.jar 里的class文件都04年的。

Struts2 与spring集成问题

<p>  今天集成的时候出错了     从页面到action都能进   但是一到调用就后台方法的时候就出错  集成spring用的jar文件也加了   下面把几个相关文件都拷出来了</p> <p> web.xml</p> <pre name="code" class="xml">&lt;filter&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;listener&gt; &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;classpath:/applicationContext.xml&lt;/param-value&gt; &lt;/context-param&gt;</pre> <p> struts.xml</p> <pre name="code" class="xml"> &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;action name="*marketInfo" class="com.btm.crm.crmAction.marketAction" method="{1}marketInfo"&gt; &lt;result name="marketAction" type="chain"&gt;marketAction&lt;/result&gt; &lt;result name="marketlist"&gt;/html/~sale/list.jsp&lt;/result&gt; &lt;/action&gt; &lt;/package&gt;</pre> <p> applicationContext.xml</p> <pre name="code" class="xml"> &lt;!-- 配置Action --&gt; &lt;bean id="marketAction" class="com.btm.crm.crmAction.marketAction"&gt; &lt;property name="marketBiz" ref="marketManagerBiz" /&gt; &lt;/bean&gt;</pre> <p> </p> <p>Action </p> <pre name="code" class="java">类已经继承了ActionSupport public String getAllmarketInfo(){ System.out.println(11); PageResult pageresult= marketBiz.getAllSalInfo(new PageResult()); List&lt;SalChance&gt; marketList = pageresult.getList(); for (SalChance chance : marketList) { System.out.println(chance.getChcCustName()); } return null; }</pre> <p> 让人郁闷的问题 还有html500错误</p> <pre name="code" class="html">type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception java.lang.NullPointerException com.btm.crm.crmAction.marketAction.getAllmarketInfo(marketAction.java:28) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76) com.btm.crm.Filter.reFilter.doFilter(reFilter.java:25) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs. </pre> <p> </p> <p>  希望帮忙gs解决下</p>

各位大神帮帮忙!!!我的类继承ActionSupport后,里面的普通方法不能访问?

<struts> <package name="default" namespace="/" extends="struts-default"> <action name="third" class="com.bjsxt.struts2.ThirdAction"> <result>/ok.jsp</result> </action> </package> </struts> public class ThirdAction extends ActionSupport { public String test() throws Exception{ return SUCCESS; } } 访问这个url:http://localhost:8080/teststruts01/third!test 报这个错误:HTTP Status 404 - There is no Action mapped for namespace [/] and action name [third!test] associated with context path [/teststruts01]. 是怎么回事啊

No result defined for action com.imooc.Test and result异常

Tomcat服务器启动正常,然后在地址栏输入http://localhost:8080/struts/first.action就报了上面那个异常。 我的struts.xml配置代码: <package name="myPackage" extends="struts-default"> <action name="first" class="com.imooc.Test"> <result>first.jsp</result> </action> </package> Test.java我继承了ActionSupport类覆盖了execute方法,返回值为“”

strus2继承MethodFilterInterceptor创建的拦截器不起作用

Action 代码如下: package com.silveraegis.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; //登录login public String login(){ System.out.println("testLogin"); return "index"; } public String TestMethod(){ System.out.println("TestMethod"); return "index"; } public String TestMethod2(){ System.out.println("TestMethod2"); return "index"; } public String TestMethod3(){ System.out.println("TestMethod3"); return "index"; } } 拦截器代码如下: package com.silveraegis.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; public class TestMethodInterceptor extends MethodFilterInterceptor{ /** * */ private static final long serialVersionUID = 1L; protected String doIntercept(ActionInvocation invocation) throws Exception { //只要是你配置的需要拦截的方法 那么他就会进入这个拦截器 而在拦截器内 处理你自己的业务逻辑 System.out.println("此方法会被过滤:"+invocation.getProxy().getMethod()); return invocation.invoke(); } } 配置文件代码如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="test" namespace="/test" extends="struts-default"> <interceptors> <interceptor name="TestMethodInterceptor" class="com.silveraegis.interceptor.TestMethodInterceptor"> <param name="includeMethods">testLogin</param> <param name="excludeMethods">TestMethod,TestMethod2,TestMethod3</param> </interceptor> <interceptor-stack name="testMethod"> <interceptor-ref name="TestMethodInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <!--<default-interceptor-ref name="testMethod"></default-interceptor-ref> --><action name="LoginAction" class="com.silveraegis.action.LoginAction" method="testLogin,TestMethod,TestMethod2,TestMethod3"> <interceptor-ref name="testMethod"> </interceptor-ref> <result name="index">/index.jsp</result> </action> </package> </struts> jsp页面如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <div align="center"> <form action="test/LoginAction!login" > <input type="submit" value="TestLogin"> </form> <form action="test/LoginAction!TestMethod" > <input type="submit" value="TestMethod"> </form> <form action="test/LoginAction!TestMethod2" > <input type="submit" value="TestMethod2"> </form> <form action="test/LoginAction!TestMethod3" > <input type="submit" value="TestMethod3"> </form> </div> </body> </html>

struts result input 问题

action result 除了在配置文件定义。@Results注解中定义,还有什么地方有,或者可以定义的地方? 系统默认的result都有什么? 或者在那能找到什么文档? 最近在整部分遗留代码, 其中有类似如下的一段代码: [code="java"] @ParentPackage("default") @Results({ @Result(name=CRUDActionSupport.RELOAD, value="prjplan", type=ServletActionRedirectResult.class), @Result(name="home", value="../home", type=ServletActionRedirectResult.class) Public class ProjectAction extended CRUDActionSupport{ ... ... public string input(){ ... return INPUT; } } [/code] 该action最后总是跳到一个 Project-input.jsp的视图。而且也没有其他关于INPUT(继承自Action)的定义 问题是:这个视图是根据什么跳转的?或者怎么去确认的的产生过程?

The content of element type "package" must match "...

在编写后台登陆模块时,将许多默认的设置放在一个名为default的package <br />里。然后再定义其他package继承该包。之前我的struts.xml配置如下 <br />&lt;struts&gt; <br />&nbsp;&nbsp;&nbsp; &lt;constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /&gt; <br />&nbsp;&nbsp;&nbsp; &lt;constant name="struts.devMode" value="true" /&gt; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;package name="exam_default" extends="struts-default" namespace="/"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--自定义拦截器及拦截器栈--&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;interceptors&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--用户认证拦截器--&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;interceptor name="authentication" class="action.admin.AuthenticationInterceptor"/&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--用户认证拦截器栈,用于防止用户非法访问--&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;interceptor-stack name="user" &gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;interceptor-ref name="authentication" /&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;interceptor-ref name="defaultStack"/&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/interceptor-stack&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;interceptor-stack name="guest" &gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;interceptor-ref name="defaultStack"/&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/interceptor-stack&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/interceptors&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--全局异常映射--&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;global-exception-mappings&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;exception-mapping result="error" exception="java.lang.Exception"/&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/global-exception-mappings&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--全局result--&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;global-results&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;result name="error"&gt;/error.jsp&lt;/result&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/global-results&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/package&gt; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;package name="admin" extends="exam_default" namespace="/admin"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="login" class="login"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;result type="redirectAction"&gt;index&lt;/result&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="index"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;result&gt;index.jsp&lt;/result&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/package&gt; <br />&lt;/struts&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 各位,谁看出来这哪里错了吗??反正最开始我是没看出来。一运行程 <br />序来个错误。 <br />“The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)". ” <br />刚看到这个错误我就想,哪个也没写错呀。仔细对了好几遍也没发现哪个属 <br />性写错了。最后Google了一下,看了别人写的文章豁然开朗了。 <br /> <br />&nbsp;&nbsp;&nbsp;&nbsp; 这个错误的意思是,package里元素必须按照一定的顺序排列。这个顺序 <br />就是 <br />result-types <br />interceptors <br />default-interceptor-ref <br />default-action-ref <br />default-class-ref <br />global-results <br />global-exception-mappings <br />action*(就是所有的action放到最后) <br /> <br /><img src="/images/smiles/icon_redface.gif"/>&nbsp;<img src="/images/smiles/icon_eek.gif"/> <br /><strong>问题补充:</strong><br />鄙视javaeye的版主, <br /> <br />六月下雪了。 <br /> <br />我的博客被移到了问答,严重怀疑管理的IQ.

SSH框架 session问题

我用的strut2 spring2 hibernate3 做了个小列子..struts.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="demo" extends="struts-default"> <action name="list" class="listUserAction"> <result>/list.jsp</result> </action> <action name="delTUser" class="delTUserAction"> <result type="redirect">/list.action</result> </action> </package> </struts> 问题: 我点击删除user1 它会redirect 到list.action这上面来,,但是它还会出现user1这条记录,,再刷新后就没了.. 这有什么解决方法吗? 流程是不变的,, [b]问题补充:[/b] 很传统的写法 DAO 继承HibernateDaoSupport 用getHibernateTemplate().delete(user);删除 spring 的配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>com/demo/model/TUser.hbm.xml</value> <value>com/demo/model/TProduct.hbm.xml</value> </list> </property> </bean> --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> <bean id="TUserDAO" class="com.demo.dao.impl.TUserDAOImpl" scope="singleton"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TUserService" class="com.demo.service.impl.TUserServiceImpl"> <property name="userdao"> <ref bean="TUserDAO" /> </property> </bean> <bean id="listUserAction" class="com.demo.action.user.ListUserAction" scope="prototype"> <property name="service"> <ref bean="TUserService" /> </property> </bean> <bean id="delTUserAction" class="com.demo.action.user.delTUserAction" scope="prototype"> <property name="service"> <ref bean="TUserService" /> </property> </bean> </beans> transactionManager <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="del*" propagation="REQUIRED" /> <tx:method name="modify*" propagation="REQUIRED" /> <tx:method name="*" read-only="true" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* com.demo.*.*.*(..))"/> <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/> </aop:config> </beans> [b]问题补充:[/b] 我用到了hibernate的延时加载..是web.xml里面设置的 <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext*.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <filter> <filter-name>opensession</filter-name> <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> </filter> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>opensession</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> [b]问题补充:[/b] 我加了getHibernateTemplate().flush(); 问题依然存在...很多SSH项目种都加这种延时,那么他们是怎么解决的呢..

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Vue + Spring Boot 项目实战(十九):Web 项目优化解决方案

快来一起探索如何打脸我们的破项目,兄弟姐妹们把害怕打在公屏上!

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

一个HashMap跟面试官扯了半个小时

一个HashMap能跟面试官扯上半个小时 关注 安琪拉的博客 1.回复面试领取面试资料 2.回复书籍领取技术电子书 3.回复交流领取技术电子书 前言 HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。 开场 面试官: 你先自我介绍一下吧! 安琪拉: 我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

工作两年简历写成这样,谁要你呀!

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 最近有伙伴问小傅哥,我的简历怎么投递了都没有反应,心里慌的很呀。 工作两年了目前的公司没有什么大项目,整天的维护别人的代码,有坑也不让重构,都烦死了。荒废我一身技能无处施展,投递的简历也没人看。我是不动物园里的猩猩,狒狒了! 我要加班,我要996,我要疯狂编码,求给我个机会… ...

相关热词 c#树形选择 c#中类图的使用方法 c# 传参 调用exe c# 怎么定义方法 c# 修改本地时间 c#前台怎么读取资源文件 c# xml转list c#实现框选截图 m*m乘法表c# c# 乘法99表
立即提问