Struts 例子介绍

根据Struts in action 的第一章
struts组件图:
[img]/upload/attachment/42509/0800a412-8e77-325e-8215-57adc050e17b.jpg[/img]
Struts的核心是ActionServlet ,ActionServlet控制导航流,当用户在IE 客户端的地址栏输入一个地址,ActionServlet就从容器接受到这个请求,它使用URI来决定哪个action来处理这个请求,请求输入的数据是由ActionServlet来绑定javabean(即formbean);每个请求都必须以 HTTP 响应进行应答,struts提供的核心类ActionForward 用来将一个页面的路径保存为逻辑名称,当完成业务逻辑后, Action 选择并向 Servlet 返回一个ActionForward, Servlet 然后使用保存在 ActionForward 对象中的路径来调用页面完成响应。

Action类:
public class RegisterAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception{
RegisterForm rf = (RegisterForm)form;
String username = rf.getUsername();
String password1 = rf.getPassword1();
String password2 = rf.getPassword2();

ActionForward forward = new ActionForward();

if(password1.equals(password2)){
try{
// ((UserDirectory) UserDirectory.getInstence()).setUser(username, password1);
forward = mapping.findForward("success");
}catch(Exception e){
forward = mapping.findForward("failure");
}
} else{
forward = mapping.findForward("failure");
}
return forward;

}
}

form:
public class RegisterForm extends ActionForm {
private String password2;
private String password1;
private String username;

public String getPassword1() {
return password1;
}
public void setPassword1(String password1) {
this.password1 = password1;
}
public String getPassword2() {
return password2;
}
public void setPassword2(String password2) {
this.password2 = password2;
}
public String getUsername() {
return username;
}
public void setUsername(String usename) {
this.username = usename;
}


}

struts-config.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
<data-sources />

<form-beans>
<form-bean name="registerForm" type="com.app.RegisterForm">
</form-bean>
</form-beans>

<global-exceptions />
<global-forwards />

<action-mappings>
<action path="/registerAction" name="registerForm" scope="request" type="com.app.RegisterAction" >
<forward name="success" path="/page/app/success.jsp"></forward>
<forward name="failure" path="/page/app/failure.jsp"></forward>
<forward name="register" path="/page/app/register.jsp"></forward>
</action>
</action-mappings>

<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>

页面:
1.register.jsp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ page
language="java"
contentType="text/html; charset=GB18030"
pageEncoding="GB18030"
%>
<HTML>
<HEAD>
<TITLE>register</TITLE>
</HEAD>
<BODY>
<P><html:form action="/registerAction.do">


用户名:<html:text property="username"></html:text><BR>
密码1: <html:text property="password1"></html:text><BR>
密码2: <html:text property="password2"></html:text><BR>

<html:submit value="Register"></html:submit>
</html:form></P>
</BODY>
</HTML>

2.success.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ page
language="java"
contentType="text/html; charset=GB18030"
pageEncoding="GB18030"
%>
<TITLE>注册成功</TITLE>
</HEAD>
<BODY>
<P>注册成功!</P>
<P><BR>
<BR>
<A href="page/app/register.jsp">再试一次</A>
</P>
</BODY>
</HTML>

3.failure.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ page
language="java"
contentType="text/html; charset=GB18030"
pageEncoding="GB18030"
%>
<TITLE>注册失败</TITLE>
</HEAD>
<BODY>
<P>注册失败!</P>
<P><BR>
<BR>
<A href="[color=red]page/app/register.jsp[/color]">再试一次</A>
</P>
</BODY>
</HTML>

需要注意配置的地方是action-mappings 中的action属性里的path 的值要和主页面里的
action的值保持一致(区分大小写);fref 的路径的开头不写/ ;在IE里面输入地址时应输入类似于:http://localhost:8088/test/page/app/register.jsp
(test为工程名,page、app为页面的路径)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值