“Hello World”是我们了解一个语言、框架,做一个简单实例的入门程序,这次我们就通过一个简单的Struts的“Hello World”来简单了解一下Struts的使用。
1、Struts环境配置
1)由于Struts是分离表现层和控制层的一个Java Web 框架 ,所以第一步创建项目一个Web Project
2)拷贝Struts的相关jar包到/WEB-INF/lib文件夹下,这样就可以在Referenced Libraries 下看到相关的引用
2、Struts环境配置完成之后,Struts项目并不能工作,还需要一些配置工作。我们都知道Struts是分离的表现层和控制层的MVC框架,那么分离之后,运行时,它又是如何做到将表现层和控制层联系起来的呢?接下来的操作就会告诉你。
1)创建表现层文件login.jsp 文件代码如下: <%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="login.do">
<input type="submit" id="btnLogin" value="测试Struts"/>
</form>
</body>
</html>
创建表现层文件login_success.jsp 文件代码如下:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
测试成功!
</body>
</html>
2 ) 配置web.xml文件 web.xml文件配置如下:
<?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">
<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-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
这样配置之后通过Serlvet就将表现层(*.do)的与Struts框架(ActionServlet)相连。
3)创建控制层文件LoginAction.java 该文件代码如下:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.model.LoginForm;
public class LoginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginActionForm laf=new LoginActionForm();
laf.setUsername(request.getParameter("username"));
laf.setPassword(request.getParameter("password"));
String username =laf.getUserName();
System.out.println(username);
String forward="error";
if("admin".equals(username)){
forward="success";
}
return mapping.findForward(forward);
}
}
4)创建struts-config.xml文件,配置struts-config.xml文件如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<action-mappings>
<action path="/login"
type="com.control.LoginAction"
scope="request"
>
<forward name="success" path="/login_success.jsp" />
</action>
</action-mappings>
</struts-config>
配置struts-config.xml文件之后,就可以将Struts框架与控制层进行联系。这是因为Struts框架(ActionServlet)加载之后,会对struts-config.xml进行一系列的处理,这些处理都是Struts框架内部进行的,这里我们不做详细解释。
3、到目前为止,一个简单的Struts实例已经完成,但是MVC中的model层我们并没有体现与Struts的联系。接下来我们继续完善上述实例,将模型层与Struts框架关联。
1)首先我们创建LoginForm.java文件,文件代码如下
import org.apache.struts.action.ActionForm;
public class LoginForm extends ActionForm {
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
2)修改之前的login.jsp文件,修改后文件如下
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="login.do">
姓名:<input type="text" name="userName"/><br/>
<input type="submit" id="btnLogin"/>
</form>
</body>
</html>
3) 修改struts-config.xml文件,配置struts-config.xml文件如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="com.model.LoginForm"/>
</form-beans>
<action-mappings>
<action path="/login"
name="loginForm"
type="com.control.LoginAction"
scope="request"
>
<forward name="success" path="/login_success.jsp" />
<forward name="error" path="/login_error.jsp"/>
</action>
</action-mappings>
</struts-config>
4)修改LoginAction.java 该文件代码如下
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.model.LoginForm;
public class LoginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginForm laf = (LoginForm)form;
String username =laf.getUserName();
System.out.println(username);
String forward="error";
if("admin".equals(username)){
forward="success";
}
return mapping.findForward(forward);
}
}
完成之后,我们就通过struts-config.xml文件将模型层(LoginForm)与控制层(LoginAction)联系了起来,至于如何联系模型层与表现层,我们只需要知道模型层中getUserName()和setUserName()表现层中userName保持对应即可将其联系起来,具体实现这就交给了Struts框架完成,这里我们不错解释。
到此为止,我们已经将Struts如何应用介绍完毕,相信你也对Struts使用有了一定的了解。但你可能还有许多疑问,Struts是如何实现那些联系的细节的呢?这些留到下次我们继续讲解。
分享到:
相关推荐
myeclipse6.0 jdk1.6 tomcat6.0
对于初学者来说是相当容易看懂的struts2
NULL 博文链接:https://liuzidong.iteye.com/blog/920940
在网上找了好个struts2的例子结果都不好使报There is no Action mapped for namespace / and action name这个错,没办法自己搞了个好用的,myeclipse 6.0 +tomcat5.5 + jdk 1.5 引入项目后直接发布就可以了!
适合初学struts2者使用,不正确之处请指正
struts应用例子,这个例子帮助入门,获得开发struts应用的基本经验。该应用功能非常简单:接受用户输入姓名,然后输出姓名。
struts2的概述struts2下的HelloWord struts2基础 struts2做好准备 struts2的标志 struts2的Action讲解 struts2中的国际化 struts2转化器 struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中...
每个程序的开始:helloword
网上给的几个例子做总报些错,主要是需要的jar包没有完整的给出,我做的hello world是在struts2.1.8.1下实现的,导入项目即可正常运行。
NULL 博文链接:https://wanglihu.iteye.com/blog/1405585
我自己做的,利用struts 框加做了一个最简单的小例子,希望给入门的人有点用。里面struts都配置好了,按照标准,就是书上那种例子。我在网上找了好多都用了S:这样的标签,很麻烦,这个例子中直接用的普通input控件。
NULL 博文链接:https://quicker.iteye.com/blog/1217896
helloword
android helloword
一个简单的struts2 helloword程序,配置信息,jar包都有
NULL 博文链接:https://pwpw1218.iteye.com/blog/2106955
前几天在网上下载一个struts2的helloword的例子,那个作者也真够缺德的,搞个错误的程序,害得我查了一天的程序错误。 最后发现竟然是struts.xml被写成啦sturts.xml。 碰见这样的问题先鄙视下提供例子的作者, 再...
mybatis的helloword程序代码,mybatis的helloword程序代码