初次使用struts,碰到了一些小问题。首先先说一下怎样为web应用增加struts支持。
1、就是要下载Struts2了,下载好了就把核心类库(jar包)增加到web应用中,即将lib下的struts2-core-2.1.8.jar、xwork-2.1.6.jar、freemarker-2.3.16.jar、ognl-2.7.3.jar等复制到web应用(就是你的项目啦)的lib路径下。
2、在web.xml里配置struts的核心filter了
这么简单就ok了,下面就写了个例子来测试一下
1、先写一个登录页面login.jsp,提交表单给指定的action,其中s是标签,body里是用struts2标签库定义的一个表单和三个简单的表单域
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.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>
<s:form action="login" method="post">
<s:textfield name="username" key="user"/>
<s:textfield name="password" key="pass"/>
<s:submit key="login"/>
</s:form>
</body>
</html>
2、login.jsp页面指定了表单的action为login,因此要定义一个struts2 的action,action通常继承ActionSupport基类,下面是lee.LoginAction.java
package lee;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public String execute() throws Exception{
if(getUsername().equals("wang")&&getPassword().equals("123")){
ActionContext.getContext().getSession().put("user", getUsername());
return "success";
}
else {
return "error";
}
}
}
代码里定义封装请求参数的uername和password属性,其中execute就是处理客户请求的方法,即只要登录名为wang,密码为123就登陆成功,返回success,否则返回error
3、写好了1和2,怎么样让其对应起来呢,在没有学spring管理struts的action之前,是在struts的配置文件struts.xml
里配置的,下面是配置好的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>
<!-- 是否显示详细错误信息 -->
<constant name="struts.devMode" value="true" />
<!-- 国际化资源文件名称 -->
<constant name="struts.custom.i18n.resources" value="i18n" />
<!-- 是否自动加载国际化资源文件 -->
<constant name="struts.i18n.reload" value="false" />
<!-- 所有的Action都应该定义在package下 -->
<package name="lee" extends="struts-default">
<action name="login" class="lee.LoginAction">
<!-- 定义3个逻辑视图和物理资源之间的映射 -->
<result name="error">/index.jsp</result>
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
这样,这个测试就写好了,部署后,浏览login.jsp页面(http://localhost:8880/strutsdemo/login.jsp)
下面是测试当中出现的一些问题
1、Unable to load configuration. - bean - jar:file:
这个是struts有个jar包没放进去,就是commons-logging-1.1.1.jar,导进去就ok了
2、
There is no Action mapped for namespace / and action name login. - [unknown location]
有经验的就知道,这个是因为没有找到映射的action 空间名或者 没有找到匹配的 action名。
出现这样的问题,一般是因为没有加载 配置文件引起的。
果然。在布署的工程目录classes下,没有找到 struts.xml。
一般而言,对于没有经验的程序员来说,习惯用于集成IDE。以为在IDE里面的文件,理所当然的会把各种文件布署在对应的目录下。但往往有些时候,它也偶尔会发发脾气,不听使唤的。^-^
在其他的时候,也会因为使用IDE造成这样或者那样的错误。所以还是要自己明白,整个运行流程。然后一步一步的去排查。
分享到:
相关推荐
Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用,极大地简化了企业级应用的构建。...实践中遇到问题,可以参照说明文件,也可以查阅Struts2的官方文档和在线资源,以获得更深入的理解。
在学习Struts的过程中,你可能会遇到以下几个步骤: 1. 安装和配置:确保你的开发环境支持Struts,例如安装Apache Tomcat服务器,配置好JDK,并将Struts库添加到项目的类路径中。 2. 创建Struts项目:创建一个新的...
在使用Struts的过程中,初学者可能会遇到各种各样的问题,这些问题往往与异常处理密切相关。以下是一些关于Struts框架中常见的问题及其解决方案: 1. **ActionServlet配置问题**:如果在web.xml文件中没有正确配置...
在初学者尝试创建第一个Struts2程序时,可能会遇到一些常见问题。这篇博客将探讨这些问题并提供解决方案。 首先,配置问题是新手经常遇到的挑战。在搭建Struts2环境时,确保正确地在`web.xml`文件中配置了Struts2的...
- **社区支持**:尽管WebWork/Struts2社区相比Struts1小,但依然活跃并持续贡献新功能和修复问题。 #### 从Struts1到Struts2的迁移步骤 1. **评估现有系统**:首先,对现有的Struts1项目进行全面评估,了解当前系统...
10. **异常处理**:Struts2提供了一种全局的异常处理机制,可以在`struts.xml`中配置,使得程序在遇到错误时能返回合适的错误页面。 通过这个简单的Struts2例子,初学者可以逐步了解和掌握上述知识点,为后续深入...
8. **错误排查**:如果遇到问题,检查服务器日志(通常在`logs`目录下)以获取错误信息。此外,确保Struts2的JAR文件和所有依赖都在`lib`目录下,并已被正确引入。 9. **测试**:通过访问不同的URL来测试Action是否...
在 Java 学习过程中,开发者经常会遇到一些问题和错误,这些问题可能会阻碍学习和开发的进度。因此,了解这些问题和解决方案对 Java 开发者非常重要。 一、Maven 运行环境问题 在使用 Maven 运行 Java 项目时,...
在实际开发中,可能会遇到各种问题,下面将针对题目中提到的一些具体问题进行详细解答。 1. **Hibernate配置问题**: 当插入数据不成功时,通常需要检查Hibernate的配置文件`hibernate.cfg.xml`。在这个例子中,...
Struts是Java Web开发中的一个流行框架,它主要用于构建基于MVC(模型-视图-控制器)模式的应用程序。这个“Struts教程大全”压缩包包含了一系列的学习资源,旨在...而实战指导则可以帮助解决实际开发中遇到的问题。
在本篇文章中,我们将深入探讨如何解决在MyEclipse环境下开发Struts应用时遇到的一个常见问题:“org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib...
6. **注意事项**:集成过程中可能会遇到的问题包括版本兼容性、资源加载问题、权限控制等。确保所有的配置都正确无误,避免因为路径问题导致菜单无法正常显示。 在实际应用中,可能还需要考虑菜单的动态更新、国际...
8. **异常处理**:Struts2允许定义全局或Action级别的异常处理策略,确保程序在遇到错误时能优雅地处理并展示给用户。 9. **国际化(i18n)**:Struts2支持多语言,通过资源文件(如`messages.properties`)可以...
在学习和使用 Struts 框架的过程中,尤其是对于初学者来说,经常会遇到一些常见的问题,这些问题可能会导致程序无法正常运行或者出现各种错误提示。本文将针对其中一种常见的错误提示:“There is no Action mapped ...
- **学习曲线**:由于其丰富的功能,初学者可能需要花费更多时间来理解和掌握Struts 1.3的使用。 随着技术的发展,Struts 1.3逐渐被更新的Struts 2和其他现代化框架如Spring Boot所取代。不过,对于一些仍在使用...
Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级...实践中遇到的问题和解决过程,将是加深理解的最佳途径。在探索这个示例的过程中,建议结合官方文档和其他教程资源,以便更好地理解和应用这些概念。
如果遇到问题,可以尝试添加其他的 commons 开头的库来解决问题。 5. **配置 struts.xml 文件**:struts.xml 是 Struts2 的配置文件,定义了应用程序的行为。例如,下面展示了如何配置一个简单的登录页面: ```...
Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计...对于初学者而言,`Struts2-docs`文档是一个不可多得的学习资源,它可以帮助开发者快速掌握Struts2框架并解决开发中遇到的问题。
Struts1.3是Apache软件基金会的Jakarta项目下的一个开源框架,主要...指南中可能包含各种实例和步骤,帮助读者逐步掌握框架的使用方法,解决实际开发中遇到的问题。无论是初学者还是有经验的开发者,都可以从中受益。