⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 模式设计的应用参考
💻
📖 第 1 页 / 共 2 页
字号:
      class=f14>  <B>实例学习Struts</B><BR><BR>  简单看过了Struts的组成及组装,现在来实现一个简单的应用,它实现与本文开头例子中相同的功能,即用户登陆并显示欢迎信息。<BR><BR>  应用中的view由2个简单JSP构成,第一个为登陆页,如下:<BR></P><BR>
      <TABLE width="100%" bgColor=#ffffff>
        <TBODY>
        <TR>
          <TD><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" 
            %><BR><BR><html:html><BR><head></head><BR><BR><body 
            bgcolor="white"><BR><BR><html:errors/><BR><BR><html:form 
            action="/ProcessLogin"><BR><table border="0" 
            width="100%"><BR><tr><BR><td><BR>Username:<BR></td><BR><td><BR><html:text 
            property="username"/><BR></td><BR></tr><BR><tr><BR><td><BR>Password:<BR></td><BR><td><BR><html:password 
            property="password"/><BR></td><BR></tr><BR><tr><BR><td><BR><html:submit/><BR></td><BR><td><BR>&amp;amp;nbsp;<BR></td><BR></tr><BR></table><BR><BR></html:form><BR></body><BR></html:html></TD></TR></TBODY></TABLE><BR>
      <P>  这个与不用Struts的例子中的页面非常类似,不同之处仅仅是用Struts <html> 
      tags定义了表单和调用的Action是配置中定义的"/ProcessLogin"。表单提交后相应的ActionForm将被创建,同时相应的action被调用处理该输入。我们还可以看到<html:errors> 
      tag被用到,这个是为了自动显示表单中定义的校验错误信息(下面将提到)。<BR><BR>  第二个JSP如下:<BR></P><BR>
      <TABLE width="100%" bgColor=#ffffff>
        <TBODY>
        <TR>
          <TD><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" 
            %><BR><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" 
            %><BR><BR><html:html><BR><BR><h1>Welcome <bean:write 
            name="loginForm" property="username" /></h1><BR><BR></html:html> 
        </TD></TR></TBODY></TABLE><BR>
      <P>  本页简单地显示了一个命名为"loginForm"的ActionForm 
      bean的一个属性(username).<BR><BR>  接着是controller层。controller层由ActionForm、Action两个类实现。ActionForm类很简单,主要是对应model(本例中是一个简单的JavaBean对象)。<BR></P><BR>
      <TABLE width="100%" bgColor=#ffffff>
        <TBODY>
        <TR>
          <TD>package com.samjdalton.struts;<BR><BR>import 
            org.apache.struts.action.ActionForm;<BR><BR>public class LoginForm 
            extends ActionForm {<BR> private LoginBean bean;<BR><BR> public 
            LoginForm() {<BR>  this.bean=new LoginBean();<BR> }<BR> public 
            LoginForm(LoginBean bean) {<BR>  this.bean = 
            bean;<BR> }<BR><BR> public void setUsername(String username) 
            {<BR>  bean.setUsername(username);<BR> }<BR><BR> public String 
            getUsername() {<BR>  return bean.getUsername();<BR> }<BR><BR> public 
            void setPassword(String password) 
            {<BR>  bean.setPassword(password);<BR> }<BR><BR> public String 
            getPassword() {<BR>  return 
        bean.getPassword();<BR> }<BR>}</TD></TR></TBODY></TABLE><BR>
      <P>  Action类用上面的ActionForm从view获得信息,并且修改model状态。<BR><BR>  Action类代码如下:<BR></P><BR>
      <TABLE width="100%" bgColor=#ffffff>
        <TBODY>
        <TR>
          <TD>package com.samjdalton.struts;<BR><BR>import 
            org.apache.struts.action.Action;<BR>import 
            org.apache.struts.action.ActionForward;<BR>import 
            org.apache.struts.action.ActionMapping;<BR>import 
            org.apache.struts.action.ActionForm;<BR><BR>public class LoginAction 
            extends Action {<BR> public ActionForward execute(ActionMapping 
            actionMapping, ActionForm actionForm, 
             javax.servlet.http.HttpServletRequest httpServletRequest, 
             javax.servlet.http.HttpServletResponse httpServletResponse) throws 
            Exception {<BR><BR>// check the username<BR> LoginForm form = 
            (LoginForm) actionForm;<BR> if 
            (form.getUsername().equalsIgnoreCase("sam") &amp;amp;&amp;amp; 
                 form.getPassword().equals("password")) {<BR> // we are 
            in<BR>  return actionMapping.findForward("success");<BR> } else 
            {<BR> // not allowed<BR>  return 
            actionMapping.findForward("failure");<BR> }<BR>}<BR>public 
            ActionErrors validate(ActionMapping 
            actionMapping<BR>HttpServletRequest httpServletRequest) 
            {<BR> ActionErrors errors = new ActionErrors();<BR><BR> if ( 
            getUsername() == null || getUsername().length() < 1 ) 
            {<BR>  errors.add("name",new 
            ActionError("error.name.required"));<BR> }<BR><BR> if ( 
            getPassword() == null || getPassword().length() < 1 ) 
            {<BR>  errors.add("pw",new 
            ActionError("error.pw.required"));<BR> }<BR> return 
        errors;<BR>}</TD></TR></TBODY></TABLE><BR>
      <P>  可以看到,action检查用户在username、password是否输入了"sam"、"password"。如果输入正确,action指明要调用的下一个view。<BR><SPAN 
      class=f14>  action类还包含一个方法:validate。本例中,validate方法检查username 
      和password的输入,如果输入有误,返回错误信息。这些错误信息包含在一个资源文件(为了支持国际化)中,该文件信息在配置文件中被配置。<BR><BR>  应用的model是一个不包含持续逻辑的标准JavaBean对象,如下所示:<BR></P><BR>
      <TABLE width="100%" bgColor=#ffffff>
        <TBODY>
        <TR>
          <TD>package com.samjdalton.struts;<BR><BR>public class LoginBean 
            {<BR> private String username;<BR> private String 
            password;<BR><BR>public void setUsername(String username) 
            {<BR> this.username=username;<BR>}<BR><BR>public String 
            getUsername() {<BR> return username;<BR>}<BR><BR>public void 
            setPassword(String password) {<BR> this.password = 
            password;<BR>}<BR><BR>public String getPassword() {<BR> return 
            password;<BR>}<BR>} </TD></TR></TBODY></TABLE><BR>
      <P>  应用的struts-config.xml配置文件:<BR></P><BR>
      <TABLE width="100%" bgColor=#ffffff>
        <TBODY>
        <TR>
          <TD><?xml version="1.0" encoding="ISO-8859-1" ?><BR><!DOCTYPE 
            struts-config PUBLIC<BR>"-//Apache Software Foundation//DTD Struts 
            Configuration 
            1.2//EN"<BR>"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"><BR> <struts-config><BR>  <form-beans><BR>   <form-bean 
            name="loginForm" 
            type="com.samjdalton.struts.LoginForm"/><BR>  </form-beans><BR><BR>  <action-mappings><BR><BR>   <action 
            path="/Login" forward="/login.jsp"/><BR>    <action path="/Welcome" 
            forward="/welcome.jsp" name="loginForm" 
            scope="request"/><BR><BR>    <action path="/ProcessLogin" 
            type="com.samjdalton.struts.LoginAction"<BR>name="loginForm" 
            scope="request" validate="true" input="/Login.do"><BR>    <forward 
            name="success" path="/Welcome.do"/><BR>    <forward name="failure" 
            path="/Login.do"/><BR>   </action><BR> </action-mappings><BR> <message-resources 
            parameter="ApplicationResources" null="false" 
            /><BR> </struts-config> </TD></TR></TBODY></TABLE><BR>
      <P>  大多数文件与上例所示相同,仅有的区别是<message-resources> 
      tag。此tag允许我们具体化应用代码中的string类型,好处是容易国际化。上例中,资源包含在名字为"ApplicationResources.properties"的文件中,它必须存在于应用的classpath(万无一失的方法是将它配置到你的WEB-INF/classes路径下)。<BR><BR>  配置成功后,IE中输入如下URL(Tomcat):<BR><BR>http://localhost:8080/<war-file-name>/Login.do<BR><BR>  应用运行的显示结果如下:</P>
      <P><IMG src=""></P>
      <P>The login page</P>
      <P><IMG src=""></P>
      <P>The error 
      page<BR><BR>  <STRONG>小结<BR></STRONG><BR>  本文中,我们先介绍了MVC模式,用两种技术完成可一个MVC模式的简单实现,包括Struts,这项可以开发更灵活、扩展性更强的基于MVC模式的Web应用。显然这已经远远超出了Struts所覆盖的。<BR></P>
      <P>The welcome page<BR><IMG 
    src=""></P></SPAN></SPAN></SPAN></SPAN></DIV></TD></TR>
  <TR>
    <TD align=middle colSpan=2 height=25>
      <DIV align=right>【<A href="javascript:fontZoom(16)">大</A> <A 
      href="javascript:fontZoom(14)">中</A> <A 
      href="javascript:fontZoom(12)">小</A>】【<A href="javascript:print()">打 
      印</A>】【<A href="javascript:window.close()">关 
闭</A>】</DIV></TD></TR></TBODY></TABLE>
<P align=center>联系人:李艳生 联系方式:Tel(13886477862) QQ(43871852) 
Email(lys650@sohu.com)</P>
<P align=center>Powered By : <A 
href="http://www.phy.hbnu.edu.cn:8080/dsp">双狮新闻发布系统 Version 1.0</A> </P>
<P align=center>CopyRight&copy; 2003-2004 双狮资源网 版权所有</P></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -