`
jkbjxy
  • 浏览: 83835 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Struts2中不同包中存在相同action配置方式

阅读更多

1.在src中不同package中定义两个类LoginAction

jk包中:

public class LoginAction extends ActionSupport{
	
	private final String success = "success";
	private final String error = "error";
	private String username;
	private String password;
	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;
	}
	
	public String execute()
	{
		if(getUsername().equals("jk") &&
			getPassword().endsWith("123"))
		{
			ActionContext.getContext().getSession().put("user", getUsername());
			return success;
		}
		else
		{
			return error;
		}
	}
}

 org.apache.struts.actionresult包:

public class LoginAction {

	private String username;
	private String password;
	private String tip;
	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;
	}
	public String getTip() {
		return tip;
	}
	public void setTip(String tip) {
		this.tip = tip;
	}
	public String execute() throws Exception
	{
		if(getUsername().equalsIgnoreCase("my"))
		{
			throw new MyException("自定义异常");
		}
		if(getUsername().equalsIgnoreCase("lang"))
		{
			throw new java.lang.Exception("用户名不能为lang");
		}
		if(getUsername().equals("jk"))
		{
			setTip("登录成功");
			return "success";
		}
		else{
			return "error";
		}
	}
}

MyExeption

public class MyException extends Exception {

	public MyException()
	{}
	
	public MyException(String msg)
	{
		super(msg);
	}
} 

第一个类是普通登录类,第二个用来测试struts2的异常处理!

2.struts.xml中配置方式:

<package name="jk" extends="struts-default">
		<action name="login" class="jk.LoginAction">
			<result type="redirect">/success.jsp</result>
		</action>
</package>
<package name="org.apache.struts.actionresult" extends="struts-default" namespace="/exception">
	<global-results>
		<result name="lang">/lang.jsp</result>
	</global-results>
	<global-exception-mappings>
		<exception-mapping result="lang" exception="java.lang.Exception">
		</exception-mapping>
	</global-exception-mappings>
	<action name="exception/login"  class="org.apache.struts.actionresult.LoginAction">
		<exception-mapping result="my" exception="org.apache.struts.actionresult.MyException" />
		<result name="my">/my.jsp</result>
	</action>
</package>

3.jsp中代码:

<s:form action="login">
	<s:textfield name="username" key="user"/>
	<s:textfield name="password" key="pass"/>
	<s:submit key="login"/>
</s:form>
<s:form action="login" namespace="/exception">
	<s:textfield name="username" key="user"/>
	<s:textfield name="password" key="pass"/>
	<s:submit key="login"/>
</s:form>

即可用使用命名空间来区别两个action中的login。

但是在测试中发现一个问题:

No configuration found for the specified action: 'exception/login' in namespace....

也就是说在命名空间中找不到exception/login这个action

只需要把JSP中写成这样就可以了:<s:form action="login" namespace="/exception">!

 

 

分享到:
评论

相关推荐

    struts2学习心得

    9. **全局类型转换配置**:为了统一管理不同类型转换的规则,Struts2允许在`struts.xml`配置文件或`xwork-conversion.properties`文件中定义全局的类型转换策略,从而避免在每个Action中重复配置相同的转换规则。...

    深入Struts2配置

    4. **Action配置**:定义Action的名称、类以及结果映射。 5. **拦截器配置**:通过拦截器栈定义拦截器的执行顺序,实现功能扩展。 6. **全局配置**:包括全局结果和异常处理,提供对所有Action的一致性管理。 掌握...

    深入Struts2的配置文件

    在Struts2框架中,**包配置**是管理Action和其他核心组件的重要方式之一。通过使用包,我们可以组织Action、拦截器等资源,使应用程序结构更加清晰、易于管理和维护。 ##### 1.1 包配置基础 - **`&lt;package&gt;`** ...

    struts2自学文档

    - **Action配置的默认值**:Action配置中的属性如method等如果没有明确指定,则采用框架默认值。 - **Struts.xml配置**:包含Action及其配置信息,如拦截器、结果视图等。 #### 四、视图转发类型 - **重定向**:...

    struts2中命名空间的使用

    1. **配置文件**:Struts2的配置文件通常为`struts.xml`,在这个文件中可以定义多个包,并为每个包指定命名空间。 2. **示例**: ```xml &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts ...

    Struts配置文件

    2. Action配置 在包配置内部,`&lt;action&gt;`元素用于定义具体的Action。`name`属性是Action的标识,`class`属性指定Action类的全限定名。`&lt;result&gt;`元素则用于定义Action执行后跳转的视图资源,`name`属性是结果码,`...

    struts2参数.txt

    默认使用`org.apache.struts2.dispatcher.mapper.DefaultActionMapper`,负责解析URL中的Action名称。 #### 十三、`struts.action.extension` 指定Action的URL扩展名,如`.action`。这决定了用户如何通过URL访问...

    企业级java_II综合测试(完整版)分享.pdf

    - 核心控制器配置:Struts2的核心控制器需要在`struts.xml`文件中配置,通过继承`struts-default.xml`文件,可以使用框架的基础功能。 2. **Spring框架** - 核心特性:Spring的核心包括控制反转(IOC)和面向切面...

    企业级java-II---综合测试.doc

    6. **Struts2配置**:Struts2的核心控制器需要在struts.xml文件中配置。通过继承`struts-default.xml`,动作包可以利用Struts2的基础功能。 7. **Struts2主题**:Struts2提供多种主题,如simple、xhtml、css_xhtml...

    DispatchAction、LookupDispatchAction、SwitchAction的应用

    **SwitchAction** 可能不会直接存在于 Struts 或其他主流框架中,但它可以通过自定义的方式来实现。例如,可以在一个 Action 中使用 Java 的 `switch` 语句或 Map 来实现动态地调用不同的处理方法: ```java public...

    ssh架包 避免jar冲突,这是已经整理好的

    Struts2的核心包括Action、Interceptor(拦截器)和Result等概念,通过配置文件可以灵活控制请求处理流程。 Spring框架则是一个全面的企业级应用开发框架,核心特性包括依赖注入(DI)和面向切面编程(AOP)。...

    SSH框架jar神包

    总的来说,"SSH框架jar神包"是一个集成了Struts2、Spring和Hibernate三大框架的高效工具,它的出现大大简化了Java Web开发中的环境配置工作,减少了因jar包冲突带来的问题,对于Java开发者来说是一份非常宝贵的资源...

    SSH框架全注解项目案例

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架。本项目案例是基于SSH框架的全注解实现,旨在简化传统的XML配置,提高开发效率。以下将详细介绍SSH框架全注解的应用及关键...

    JavaEE新开发规范文档

    Struts的Action配置** - 所有Struts的Action都配置在相关的`applicationContext-action*.xml`文件中。 - **3. 持久层Dao配置** - 所有持久层Dao都配置在`applicationContext-dao.xml`文件中。 - **4. 公共业务类...

    ssh(structs,spring,hibernate)框架中的上传下载

     需要指定的是Spring 1.2.5提供了两套Hibernate的支持包,其中Hibernate 2相关的封装类位于org.springframework.orm.hibernate2.*包中,而Hibernate 3.0的封装类位于org.springframework.orm.hibernate3.*包中,...

    JAVA面试题集锦.pdf

    6. Struts是基于MVC的框架,工作流程涉及Action、DispatcherServlet等。 7. EJB的生命周期包括创建、激活、钝化、销毁等状态,Session Bean处理用户交互,Entity Bean持久化数据。 8. TCP保证数据顺序传输,UDP无...

    JAVA面试题全集

    - Struts 的工作流程涉及 ActionServlet、ActionForm、Action 和 View。 16. **路由协议种类及特点** - RIP、OSPF 和 BGP 等是常见的路由协议,每种协议都有其特定的应用场景。 17. **AWT和Swing组件的GUI设计**...

    大唐JAVA笔试题

    - **protected**: 表示受保护的,允许在同一包内的其他类或不同包中的子类访问。 - **private**: 私有的,只能被定义它的类内部访问,用于封装数据,防止外部直接修改。 - **final**: 表示最终的,用于修饰类、方法和变量...

Global site tag (gtag.js) - Google Analytics