Struts中最简单的MVC入门教程,附源代码以及效果演示

1.写一个welcome.jsp页面

image

设置为转发到registerUI.do

<%–

Created by IntelliJ IDEA.

User: 18010

Date: 2018/5/27

Time: 10:41

To change this template use File | Settings | File Templates.

–%>

<%@ page contentType=”text/html;charset=UTF-8″ language=”java” %>

<html>

<head>

<title>welcome</title>

</head>

<body>

<a href=”${pageContext.request.contextPath}/registerUI.do”>

用户注册

</a>

这里的代码是最关键的:/registerUI.do

直接转发到registeUI这个控制器

让我们看看registerUI是怎么配置的

<action

path=”/registerUI”

forward=”/WEB-INF/login.jsp”

/>

非常简单的两个代码

1.path指明这个控制器的名字,也就是访问地址

2.forward指明这个控制器的转发路径,这里没有走中间控制器,比如Filter,Servlet之类的,而是直接转发到了login.jsp这个注册页面

</body>

</html>

2.写一个register.jsp页面

image

设置为转发到register.do

<%–

Created by IntelliJ IDEA.

User: 18010

Date: 2018/5/26

Time: 19:31

To change this template use File | Settings | File Templates.

–%>

<%@ page contentType=”text/html;charset=UTF-8″ language=”java” %>

<html>

<head>

<title>login</title>

</head>

<body>

<form action=”/register1.do” method=”post”>

在这个页面中,这里是最关键的代码:

1.利用表达,转发到register1.do,也就是一个控制器,直接没有这里什么事了

2.我们查看并分析一下register1.do是怎么配置的

<action path=”/register1″

type=”com.lxgyx.web.struts1.action.RegisterAction”

name=”registerForm”

scope=”request”

>

<forward name=”toSuccessJsp”

path=”/WEB-INF/success.jsp”

redirect=”false”/>

</action>

1.path是这个控制器的访问路径,也就是/register1

2.type是这个控制器的相对位置

3.name是这个控制器的名字

4.scope是这个控制器的作用域

5.forward是这个控制器的转发路径

a.name是反射器对应的名字mapping

mapping.findForward(“toSuccessJsp”);

b.path是转发的文件路径,也就是接收参数的文件的位置

c.redirect是选择转发还是重定向,false表示转发

<table border=”1″ align=”center”>

<caption><h1>Struts登录版1</h1></caption>

<tr>

<th>用户名:</th>

<td><input type=”text” name=”username”></td>

</tr>

<tr>

<th>密码:</th>

<td><input type=”text” name=”password”></td>

</tr>

<tr>

<td colspan=”2″ align=”center”>

<input type=”submit” value=”提交”>

</td>

</tr>

</table>

</form>

</body>

</html>

a.写一个RegisterForm获得表单数据

这一步比较关键的是必须要让这个类继承ActionForm类

image

package com.lxgyx.web.struts1.form;

import org.apache.struts.action.ActionForm;

public class RegisterForm extends ActionForm {

public String getUsername() {

return username;

}

public String getPassword() {

return password;

}

private String username;

private String password;

public void setUsername(String username) {

this.username = username;

//System.out.println(“框架自动注入”);

}

public void setPassword(String password) {

this.password = password;

//System.out.println(“框架自动注入”);

}

}

这个没什么好讲的,表达里面有哪些内容,这个就用哪些内容来接收就行了,这是一种面对对象的编程思想.

b.写一个RegisterAction控制表单数据

image

这一步比较关键的是类药继承Action类,这样才能和RegisterForm类关联起来

package com.lxgyx.web.struts1.action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.lxgyx.web.struts1.form.RegisterForm;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

//分控制器

public class RegisterAction extends Action{

//覆写execute()方法

@Override

public ActionForward execute(

ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response)

throws Exception {

request.setCharacterEncoding(“UTF-8”);

//父子ActionForm强转

RegisterForm registerForm = (RegisterForm)form;

String username = registerForm.getUsername();

String password = registerForm.getPassword();

这里,通过把表单强转以后,利用表达获取表单参数

return mapping.findForward(“toSuccessJsp”);

这里,利用了反射器的原理,将转发反射到mapping中,便于Struts配置

//return new ActionForward(“/success.jsp”,false);

}

}

3.写一个success.jsp页面

image

<%–

Created by IntelliJ IDEA.

User: 18010

Date: 2018/5/26

Time: 22:37

To change this template use File | Settings | File Templates.

–%>

<%@ page contentType=”text/html;charset=UTF-8″ language=”java” %>

<html>

<head>

<title>success</title>

</head>

<body>

用户名:${registerForm.username} <br>

密码:${registerForm.password} <br>

非常值得注意的是:这里的EL表达式,用的是registerForm来接收的,也就是表单控制器

这种思想是:用表单收集参数,用控制器处理参数,用表达输出参数

</body>

</html>

配置struts-config.xml页面

image

<?xml version=”1.0″ encoding=”UTF-8″?>

<!DOCTYPE struts-config PUBLIC

“-//Apache Software Foundation//DTD Struts Configuration 1.3//EN”

“http://struts.apache.org/dtds/struts-config_1_3.dtd”>

<!–suppress ALL –>

<struts-config>

<form-beans>

<form-bean name=”registerForm”

type=”com.lxgyx.web.struts1.form.RegisterForm”/>

</form-beans>

<action-mappings>

<action

path=”/registerUI”

forward=”/WEB-INF/login.jsp”

/>

<action

path=”/forward”

forward=”/WEB-INF/forward.jsp”

unknown=”true”

/>

<action path=”/register1″

type=”com.lxgyx.web.struts1.action.RegisterAction”

name=”registerForm”

scope=”request”

>

<forward name=”toSuccessJsp”

path=”/WEB-INF/success.jsp”

redirect=”false”/>

</action>

</action-mappings>

</struts-config>

最终在tomcat中的运行结果

image

image

image

希望大家喜欢,新手直接把代码复制到工具里面,然后运行就行ok了

打赏

发布者

张 大鹏

北京理想国惠玩科技有限公司CEO

发表评论

电子邮件地址不会被公开。 必填项已用*标注