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">!
分享到:
相关推荐
9. **全局类型转换配置**:为了统一管理不同类型转换的规则,Struts2允许在`struts.xml`配置文件或`xwork-conversion.properties`文件中定义全局的类型转换策略,从而避免在每个Action中重复配置相同的转换规则。...
4. **Action配置**:定义Action的名称、类以及结果映射。 5. **拦截器配置**:通过拦截器栈定义拦截器的执行顺序,实现功能扩展。 6. **全局配置**:包括全局结果和异常处理,提供对所有Action的一致性管理。 掌握...
在Struts2框架中,**包配置**是管理Action和其他核心组件的重要方式之一。通过使用包,我们可以组织Action、拦截器等资源,使应用程序结构更加清晰、易于管理和维护。 ##### 1.1 包配置基础 - **`<package>`** ...
- **Action配置的默认值**:Action配置中的属性如method等如果没有明确指定,则采用框架默认值。 - **Struts.xml配置**:包含Action及其配置信息,如拦截器、结果视图等。 #### 四、视图转发类型 - **重定向**:...
1. **配置文件**:Struts2的配置文件通常为`struts.xml`,在这个文件中可以定义多个包,并为每个包指定命名空间。 2. **示例**: ```xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts ...
2. Action配置 在包配置内部,`<action>`元素用于定义具体的Action。`name`属性是Action的标识,`class`属性指定Action类的全限定名。`<result>`元素则用于定义Action执行后跳转的视图资源,`name`属性是结果码,`...
默认使用`org.apache.struts2.dispatcher.mapper.DefaultActionMapper`,负责解析URL中的Action名称。 #### 十三、`struts.action.extension` 指定Action的URL扩展名,如`.action`。这决定了用户如何通过URL访问...
- 核心控制器配置:Struts2的核心控制器需要在`struts.xml`文件中配置,通过继承`struts-default.xml`文件,可以使用框架的基础功能。 2. **Spring框架** - 核心特性:Spring的核心包括控制反转(IOC)和面向切面...
6. **Struts2配置**:Struts2的核心控制器需要在struts.xml文件中配置。通过继承`struts-default.xml`,动作包可以利用Struts2的基础功能。 7. **Struts2主题**:Struts2提供多种主题,如simple、xhtml、css_xhtml...
**SwitchAction** 可能不会直接存在于 Struts 或其他主流框架中,但它可以通过自定义的方式来实现。例如,可以在一个 Action 中使用 Java 的 `switch` 语句或 Map 来实现动态地调用不同的处理方法: ```java public...
Struts2的核心包括Action、Interceptor(拦截器)和Result等概念,通过配置文件可以灵活控制请求处理流程。 Spring框架则是一个全面的企业级应用开发框架,核心特性包括依赖注入(DI)和面向切面编程(AOP)。...
总的来说,"SSH框架jar神包"是一个集成了Struts2、Spring和Hibernate三大框架的高效工具,它的出现大大简化了Java Web开发中的环境配置工作,减少了因jar包冲突带来的问题,对于Java开发者来说是一份非常宝贵的资源...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架。本项目案例是基于SSH框架的全注解实现,旨在简化传统的XML配置,提高开发效率。以下将详细介绍SSH框架全注解的应用及关键...
Struts的Action配置** - 所有Struts的Action都配置在相关的`applicationContext-action*.xml`文件中。 - **3. 持久层Dao配置** - 所有持久层Dao都配置在`applicationContext-dao.xml`文件中。 - **4. 公共业务类...
需要指定的是Spring 1.2.5提供了两套Hibernate的支持包,其中Hibernate 2相关的封装类位于org.springframework.orm.hibernate2.*包中,而Hibernate 3.0的封装类位于org.springframework.orm.hibernate3.*包中,...
6. Struts是基于MVC的框架,工作流程涉及Action、DispatcherServlet等。 7. EJB的生命周期包括创建、激活、钝化、销毁等状态,Session Bean处理用户交互,Entity Bean持久化数据。 8. TCP保证数据顺序传输,UDP无...
- Struts 的工作流程涉及 ActionServlet、ActionForm、Action 和 View。 16. **路由协议种类及特点** - RIP、OSPF 和 BGP 等是常见的路由协议,每种协议都有其特定的应用场景。 17. **AWT和Swing组件的GUI设计**...
- **protected**: 表示受保护的,允许在同一包内的其他类或不同包中的子类访问。 - **private**: 私有的,只能被定义它的类内部访问,用于封装数据,防止外部直接修改。 - **final**: 表示最终的,用于修饰类、方法和变量...