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

📄 building_controller.html

📁 Struts中文文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
</struts-config>
</pre>

      <p>
      关于如何获取这个数据源,参阅<a href="building_model.html#databases">访问关系数据库</a>这一节。
      </p>
    </blockquote></td></tr></table><a name="dd_config"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>4.5  Web 程序发布描述</strong></font></td></tr><tr><td><blockquote>
      
      <p>
      设置你的程序的最后一步是配置程序的发布描述(保存在<code>WEB-INF/web.xml</code>文件中)来包含所有需要的Struts部件。用示例程序中的发布描述作为一个指南,我们发现下列条目需要创建或者修改。
      </p>
      
      <a name="dd_config_servlet"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>4.5.1 配置Action servlet实例</strong></font></td></tr><tr><td><blockquote>
        
        <p>
        增加一个条目来定义action servlet自己,包含合适的初始化参数。这样的一个条目可能是这样的:
        </p>

<pre>
&lt;servlet&gt;
  &lt;servlet-name&gt;action&lt;/servlet-name&gt;
  &lt;servlet-class&gt;
    org.apache.struts.action.ActionServlet
  &lt;/servlet-class&gt;
  &lt;init-param&gt;
    &lt;param-name&gt;application&lt;/param-name&gt;
    &lt;param-value&gt;
      org.apache.struts.example.ApplicationResources
    &lt;/param-value&gt;
  &lt;/init-param&gt;
  &lt;init-param&gt;
    &lt;param-name&gt;config&lt;/param-name&gt;
    &lt;param-value&gt;
      /WEB-INF/struts-config.xml
    &lt;/param-value&gt;
  &lt;/init-param&gt;
  &lt;init-param&gt;
    &lt;param-name&gt;debug&lt;/param-name&gt;
    &lt;param-value&gt;2&lt;/param-value&gt;
  &lt;/init-param&gt;
  &lt;init-param&gt;
    &lt;param-name&gt;mapping&lt;/param-name&gt;
    &lt;param-value&gt;
      org.apache.struts.example.ApplicationMapping
    &lt;/param-value&gt;
  &lt;/init-param&gt;
  &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;
&lt;/servlet&gt;
</pre>
        
        <p>
        controller servlet支持的初始化参数如下所示。(你也可以在<a href="../api/index.html">Javadocs</a>中查找ActionServlet类得到详细信息。)方括号表示如果你没有给出初始值时使用的默认值。

        <ul>
  
          <li><strong>application</strong> - 程序的资源包的基础类的Java类名。 [NONE]</li>
          <li><strong>bufferSize</strong> - 处理文件上传的输入缓冲区大小。[4096]</li>
          <li><strong>config</strong> - 指向包含我们的配置信息的XML资源的相对于上下文的路径。[/WEB-INF/struts-config.xml]</li>
          <li><strong>content</strong> - 默认输出响应的的文档类性和字符集编码。它可以被一个转移到的servlet或者JSP重载。[text/html]</li>
          <li><strong>debug</strong> - 这个servlet的debug信息详细程度,它控制多少信息应该被记录。[0]</li>
          <li><strong>detail</strong> - 我们在<code>initMapping()</code>中使用的Digester的debug信息详细程度,它输出到System.out而非servlet的log。[0]</li>
          <li><strong>factory</strong> - 用于创建程序的<code>MessageResources</code>对象的<code>MessageResourcesFactory</code>的类名。
              [org.apache.struts.util.PropertyMessageResourcesFactory]</li>
          <li><strong>formBean</strong> - ActionFormBean继承的根的Java类名。[org.apache.struts.action.ActionFormBean].</li>
          <li><strong>forward</strong> - ActionForwarder继承的根的Java类名。 [org.apache.struts.action.ActionForward].
              两个你可能选择的类是:
              Two convenient classes you may wish to use are:
              <ul>
              <li><em>org.apache.struts.action.ForwardingActionForward</em> -
                  <code>org.apache.struts.action.ActionForward</code>的子类,它的 <code>redirect</code>属性被默认置为<code>false</code>(和Actionforward 默认值一样)。</li>
              <li><em>org.apache.struts.action.RedirectingActionForward</em> -
                  <code>org.apache.struts.action.ActionForward</code>的子类,它的<code>redirect</code>属性被默认置为<code>true</code>。</li>
              </ul></li>
          <li><strong>locale</strong> - 如果被置为 <code>true</code>, 并且有一个用户session,如果没有Locale对象的话,放置一个合适的<code>java.util.Locale</code> object (用<code>Action.LOCALE_KEY</code>作为标识关键字)到用户session中去。[true]</li>
          <li><strong>mapping</strong> - ActionMapping继承的根的Java类名。[org.apache.struts.action.ActionMapping].
              两个你可能选择的类是:
              <ul>
              <li><em>org.apache.struts.action.RequestActionMapping</em> - <code>org.apache.struts.action.ActionMapping</code> 的子类,<code>scope</code>属性默认是"request"。</li>
              <li><em>org.apache.struts.action.SessionActionMapping</em> -                   of <code>org.apache.struts.action.ActionMapping</code> 的子类,<code>scope</code>属性默认是"session"(和ActionMapping默认值一样)。</li>
              </ul></li>
          <li><strong>maxFileSize</strong> - 一次上传文件可能的最大大小(单位是字节)。可以在数字后面加上"K","M',或者"G", 代表千字节,兆字节和千兆字节。[250M]</li>
          <li><strong>multipartClass</strong> - 用于文件上传的MultipartRequestHandler 的实现的完整Java类名。[org.apache.struts.upload.DiskMultipartRequestHandler]
              </li>
          <li><strong>nocache</strong> - 如果设置为<code>true</code>, 在每一个响应中加上HTTP头信息来访置我们的任何响应或者转移被浏览器缓存。[false]</li>
          <li><strong>null</strong> - 如果设置为<code>true</code>, 如果(资源)信息的关键字无法找到,返回一个<code>null</code>。否则,返回一个带有此关键字的错误信息。[true]</li>
          <li><strong>tempDir</strong> - 文件上传时的临时目录。 [这个web程序的servlet上下文属性指定的工作目录]</li>
          <li><strong>validate</strong> - 我们是否适用性的配置文件格式?[true]</li>  
          <li><strong>validating</strong> - 我们是否使用一个带有校验的XML 解释器来处理配置文件(强烈建议)? [true]</li>  
        </ul>
      </blockquote></td></tr></table>
      
      <a name="dd_config_mapping"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>4.5.2 配置Action Servlet 映射</strong></font></td></tr><tr><td><blockquote>
      
        <p>
        <strong>注意:</strong> 这一段中的材料不是针对Struts的。配置servlet映射是在Java Servlet规格书中定义的。这一段描述了最普通的针对配置一个Struts程序的方法。
        </p>
        <p>
        又两种一般的方法来配置一个URL成为被controller servlet处理的URL - 前缀匹配和后缀匹配。每种方法相应的配置条目会在下面描述。
        </p>
          
        <p>
        前缀匹配意味着你希望所有的以某一个特定值开头的URL(在上下文路径部分之后)都被送往这个servlet。这样的条目可能是这样:
        </p>

<pre>
  &lt;servlet-mapping&gt;
     &lt;servlet-name&gt;action&lt;/servlet-name&gt;
     &lt;url-pattern&gt;/execute/*&lt;/url-pattern&gt;
   &lt;/servlet-mapping&gt;
</pre>
        
        <p>
        就是说前面我们提到过的匹配<code>/logon</code>的URI请求会被这样描述:

<pre>
http://www.mycompany.com/myapplication/execute/logon
</pre>

        <p>
        这里<code>/myapplication</code>是你的程序部署的上下文路径。
        </p>
          
        <p>
        后缀匹配映射,相反,在URL以某一个特定的字符串结尾时把URI请求匹配到action servlet.举个例子,JSP处理servlet对应到<code>*.jsp</code>,这样,每当一个jsp页面被访问,它都会被调用进行处理。为了使用<code>*.do</code>后缀名(意思是“做什么”),映射条目可能是这样的:
        </p>

<pre>
  &lt;servlet-mapping&gt;
     &lt;servlet-name&gt;action&lt;/servlet-name&gt;
     &lt;url-pattern&gt;*.do&lt;/url-pattern&gt;
   &lt;/servlet-mapping&gt;
</pre>
        
        <p>
          
        前面我们提到过的匹配<code>/logon</code>的URI请求会被这样描述:
        </p>

<pre>
http://www.mycompany.com/myapplication/logon.do
</pre>
      </blockquote></td></tr></table>
      
      <a name="dd_config_taglib"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>4.5.3 配置 Struts 标签库</strong></font></td></tr><tr><td><blockquote>
        
        <p>
        下一步,你必须增加一个条目来定义Struts标签库。当前Struts打包了4个标签库。
        </p>
        <p>
          struts-bean 标签库包含访问bean和它们的属性的有用的标签,也包含利用这些访问定义新的bean以便在页面剩下的部分用脚本中的变量和页面范围的属性来访问。还有用request coolie,header和parameter的值来创建bean的便利机制。
        </p>
        <p>
          struts-html 标签库包含用户创建struts输入表单,还有其他通常很在创建基于HTML的用户界面上很有用的标签。
        </p>
        <p>
          struts-logic 标签库包括用于有条件的生成输出代码,循环整个对象容器来输出重复的文本,还有程序流管理。
        </p>
        <p>
          struts-template 标签库包含定义了一个模版机制的标签。
        </p>
        
        <p>
        下面是在你的程序中如何定义所有这些标签。在实际工作中你可以只指定你的程序要用到的。
        </p>

<pre>
&lt;taglib&gt;
  &lt;taglib-uri&gt;
    /WEB-INF/struts-bean.tld
  &lt;/taglib-uri&gt;
  &lt;taglib-location&gt;
    /WEB-INF/struts-bean.tld
  &lt;/taglib-location&gt;
&lt;/taglib&gt;
&lt;taglib&gt;
  &lt;taglib-uri&gt;
    /WEB-INF/struts-html.tld
  &lt;/taglib-uri&gt;
  &lt;taglib-location&gt;
    /WEB-INF/struts-html.tld
  &lt;/taglib-location&gt;
&lt;/taglib&gt;
&lt;taglib&gt;
  &lt;taglib-uri&gt;
    /WEB-INF/struts-logic.tld
  &lt;/taglib-uri&gt;
  &lt;taglib-location&gt;
    /WEB-INF/struts-logic.tld
  &lt;/taglib-location&gt;
&lt;/taglib&gt;
&lt;taglib&gt;
  &lt;taglib-uri&gt;
    /WEB-INF/struts-template.tld
  &lt;/taglib-uri&gt;
  &lt;taglib-location&gt;
    /WEB-INF/struts-template.tld
  &lt;/taglib-location&gt;
&lt;/taglib&gt;
</pre>

        <p>
        这告诉JSP系统到哪里去寻找标签库的定义(在你的程序的WEB-INF目录,而不是Internet上的某处)。
        </p>
      </blockquote></td></tr></table>
      
      <a name="config_add"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>4.5.4 把Struts部件增加到你的程序中</strong></font></td></tr><tr><td><blockquote>
        
        <p>
        为了使用Struts,你必须拷贝你需要的.tld文件到你的<code>WEB-INF</code>目录,并且拷贝<code>struts.jar</code>(和其它所有的<code>commons-*.jar</code>文件)到你的<code>WEB-INF/lib</code>目录。
        </p>
                                <p>
                                        下一章: <a href="resources.html">Struts 资源</a>
                                </p>
      </blockquote></td></tr></table>
    </blockquote></td></tr></table>
  </body></td></tr><tr><td colspan="2"><hr></td></tr><tr><td colspan="2"><div align="center"><font size="-1" color="#023264"><em>
        Copyright (c) 2000-2002, Apache Software Foundation
        </em></font></div><img border="0" align="right" src="../images/struts-power.gif"></td></tr></table></body></html>

⌨️ 快捷键说明

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