﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-大道至简-文章分类-Struts</title><link>http://www.blogjava.net/hellotony/category/11937.html</link><description>道生一，一生二，二生三，三生万物。万物负阴而抱阳，冲气以为和。</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:38:27 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:38:27 GMT</pubDate><ttl>60</ttl><item><title>Struts分页方法</title><link>http://www.blogjava.net/hellotony/articles/22100.html</link><dc:creator>Tony</dc:creator><author>Tony</author><pubDate>Thu, 01 Dec 2005 04:10:00 GMT</pubDate><guid>http://www.blogjava.net/hellotony/articles/22100.html</guid><wfw:comment>http://www.blogjava.net/hellotony/comments/22100.html</wfw:comment><comments>http://www.blogjava.net/hellotony/articles/22100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hellotony/comments/commentRss/22100.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hellotony/services/trackbacks/22100.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 说到Struts自然是不能离开MVC模式,分页显示也是如此.我不知道我的算法是不是算好的,也希望看过的朋友能发表一下自己的看法,下面简单阐述一下主要的开发思路: 1)建立适当的模型组件,对应你要查询数据库中的表,这部分由熟悉的JavaBean来充当.并在其中建立数据库查询方法,该方法需要一个java.sql.Conntection类型的参数,并返回一个ArrayList,在本例...&nbsp;&nbsp;<a href='http://www.blogjava.net/hellotony/articles/22100.html'>阅读全文</a><img src ="http://www.blogjava.net/hellotony/aggbug/22100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hellotony/" target="_blank">Tony</a> 2005-12-01 12:10 <a href="http://www.blogjava.net/hellotony/articles/22100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>教您如何用Struts向数据库中储存图片</title><link>http://www.blogjava.net/hellotony/articles/20560.html</link><dc:creator>Tony</dc:creator><author>Tony</author><pubDate>Sat, 19 Nov 2005 04:10:00 GMT</pubDate><guid>http://www.blogjava.net/hellotony/articles/20560.html</guid><wfw:comment>http://www.blogjava.net/hellotony/comments/20560.html</wfw:comment><comments>http://www.blogjava.net/hellotony/articles/20560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hellotony/comments/commentRss/20560.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hellotony/services/trackbacks/20560.html</trackback:ping><description><![CDATA[<font size="2">&nbsp;&nbsp;&nbsp; 这个例子是通过用Struts的FormFile来写入到MySQL中。用用户通过选一个图片，然后按submit就可以存入数据库中，其中先要建立一个表:
<br><br></font><center><font size="2"><ccid_nobr>
</ccid_nobr></font><table bordercolorlight="black" bordercolordark="#FFFFFF" align="center" border="1" cellpadding="2" cellspacing="0" width="400">
<tbody><tr>
    <td class="code" style="font-size: 9pt;" bgcolor="#e6e6e6">
    <pre><font size="2"><ccid_code>create table test <br>( name varchar(20), <br>pic blob );<br>在MySQL的test库中<br><br>&lt;%@ page language="java"%&gt;<br>&lt;%@ taglib uri=<br>"http://jakarta.apache.org/struts/tags-bean"<br>prefix="bean"%&gt; <br>&lt;%@ taglib uri=<br>"http://jakarta.apache.org/struts/tags-html"<br>prefix="html"%&gt;<br> <br>&lt;html&gt; <br> &lt;head&gt;<br>  &lt;title&gt;JSP for multiForm form&lt;/title&gt;<br> &lt;/head&gt;<br> &lt;body&gt;<br>  &lt;html:form action="/multi"<br>  enctype="multipart/form-data"&gt;<br>  一定要用enctype=“multipart/form-data“<br>  不然就提交之后就会有抛出异常<br>   file : &lt;html:file property="file"/&gt;<br>   &lt;html:errors property="file"/&gt;&lt;/br&gt;<br>   name : &lt;html:text property="name"/&gt;<br>   &lt;html:errors property="name"/&gt;&lt;/br&gt;<br>   &lt;html:submit/&gt;&lt;html:cancel/&gt;<br>  &lt;/html:form&gt;<br> &lt;/body&gt;<br>&lt;/html&gt;</ccid_code></font></pre> 
   </td>
  </tr>
</tbody></table>
</center>
<font size="2"><br><br>2. 相对应的ActionForm:
<br><br></font><center><font size="2"><ccid_nobr>
</ccid_nobr></font><table bordercolorlight="black" bordercolordark="#FFFFFF" align="center" border="1" cellpadding="2" cellspacing="0" width="400">
<tbody><tr>
    <td class="code" style="font-size: 9pt;" bgcolor="#e6e6e6">
    <pre><font size="2"><ccid_code>//Created by MyEclipse Struts<br>// XSL source (default): <br>platform:/plugin/com.genuitec.eclipse.<br>cross.easystruts.eclipse_3.8.1<br>/xslt/JavaClass.xsl<br><br>package saoo.struts.form;<br><br>import org.apache.struts.action.ActionForm;<br>import org.apache.struts.upload.FormFile;<br><br>/** <br> * MyEclipse Struts<br> * Creation date: 08-24-2004<br> * <br> * XDoclet definition:<br> * @struts:form name="multiForm"<br> */<br>public class MultiForm extends ActionForm <br>{<br><br>    // ----------------<br> Instance Variables<br><br>    /** file property */<br>    private FormFile file;<br><br>    /** name property */<br>    private String name;<br><br>    // -----------------<br>Methods<br><br>    /** <br>     * Returns the file.<br>     * @return FormFile<br>     */<br>    public FormFile getFile() <br>	{<br>        return file;<br>    }<br><br>    /** <br>     * Set the file.<br>     * @param file The file to set<br>     */<br>    public void setFile(FormFile file) <br>	{<br>        this.file = file;<br>    }<br><br>    /** <br>     * Returns the name.<br>     * @return String<br>     */<br>    public String getName()<br>	{<br>        return name;<br>    }<br><br>    /** <br>     * Set the name.<br>     * @param name The name to set<br>     */<br>    public void setName(String name)<br>	{<br>        this.name = name;<br>    }<br>}</ccid_code></font></pre> 
   </td>
  </tr>
</tbody></table>
</center>
<font size="2"><br><br>3. 对就的Action:
<br><br></font><center><font size="2"><ccid_nobr>
</ccid_nobr></font><table bordercolorlight="black" bordercolordark="#FFFFFF" align="center" border="1" cellpadding="2" cellspacing="0" width="400">
<tbody><tr>
    <td class="code" style="font-size: 9pt;" bgcolor="#e6e6e6">
    <pre><font size="2"><ccid_code>//Created by MyEclipse Struts<br>// XSL source (default): <br>platform:/plugin/com.genuitec.eclipse.<br>cross.easystruts.eclipse_3.8.1<br>/xslt/JavaClass.xsl<br><br>package saoo.struts.action;<br><br>import java.io.FileNotFoundException;<br>import java.io.IOException;<br>import java.sql.Connection;<br>import java.sql.DriverManager;<br>import java.sql.PreparedStatement;<br>import java.sql.SQLException;<br><br>import javax.servlet.http.HttpServletRequest;<br>import javax.servlet.http.HttpServletResponse;<br><br>import org.apache.struts.action.Action;<br>import org.apache.struts.action.ActionForm;<br>import org.apache.struts.action.ActionForward;<br>import org.apache.struts.action.ActionMapping;<br>import org.apache.struts.upload.FormFile;<br><br>import saoo.struts.form.MultiForm;<br><br>/** <br> * MyEclipse Struts<br> * Creation date: 08-24-2004<br> * <br> * XDoclet definition:<br> * @struts:action path="/multi"<br> name="multiForm" input="/form/multi.jsp" <br> scope="request"<br> */<br>public class MultiAction extends Action<br>{<br><br>    // ---------------<br> Instance Variables<br><br>    // ---------------<br> Methods<br><br>    /** <br>     * Method execute<br>     * @param mapping<br>     * @param form<br>     * @param request<br>     * @param response<br>     * @return ActionForward<br>     */<br>    public ActionForward execute(<br>        ActionMapping mapping,<br>        ActionForm form,<br>        HttpServletRequest request,<br>        HttpServletResponse response) <br>		{<br>        MultiForm multiForm = (MultiForm)<br>		form;<br>        FormFile file = multiForm.getFile();<br><br>        String name = multiForm.getName();<br>        try {<br>            Class.forName<br>			("org.gjt.mm.mysql.Driver"); <br>            String url="jdbc:mysql:<br>			///test"; <br>            Connection con=DriverManager.getConnection<br>			(url,"root","password"); <br>            String sql="insert into pic values (?,?)"; <br>            PreparedStatement ps<br>			=con.prepareStatement(sql); <br>            ps.setString(1, name);<br>//加入图片到数据库<br>    <br>ps.setBinaryStream<br>(2,file.getInputStream(),<br>file.getFileSize());<br>            ps.executeUpdate(); <br>            ps.close(); <br>            con.close(); <br>        } catch (SQLException se) <br>		{<br>            se.printStackTrace();<br>            return mapping.findForward("error");<br>        } catch (ClassNotFoundException e) {<br>            // TODO Auto-generated catch block<br>            e.printStackTrace();<br>            return mapping.findForward("error");<br>        } catch (FileNotFoundException e) {<br>            // TODO Auto-generated catch block<br>            e.printStackTrace();<br>            return mapping.findForward("error");<br>        } catch (IOException e) {<br>            // TODO Auto-generated catch block<br>            e.printStackTrace();<br>            return mapping.findForward("error");<br>        }<br>        return mapping.findForward("success");<br>    }<br>}</ccid_code></font></pre> 
   </td>
  </tr>
</tbody></table>
</center>
<font size="2"><br><br>              
              </font><p align="center"><font size="2"><br></font>
              
              
		
		</p><img src ="http://www.blogjava.net/hellotony/aggbug/20560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hellotony/" target="_blank">Tony</a> 2005-11-19 12:10 <a href="http://www.blogjava.net/hellotony/articles/20560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts 学习起歩问答</title><link>http://www.blogjava.net/hellotony/articles/19608.html</link><dc:creator>Tony</dc:creator><author>Tony</author><pubDate>Sun, 13 Nov 2005 13:32:00 GMT</pubDate><guid>http://www.blogjava.net/hellotony/articles/19608.html</guid><wfw:comment>http://www.blogjava.net/hellotony/comments/19608.html</wfw:comment><comments>http://www.blogjava.net/hellotony/articles/19608.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hellotony/comments/commentRss/19608.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hellotony/services/trackbacks/19608.html</trackback:ping><description><![CDATA[<p><font size="2">1 JSP Framework - Struts介绍<br>Struts是采用Java Servlet/JavaServer Pages技术，开发Web应用程序的开放源码的framework。</font></p>
<p><font size="2">采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。</font></p>
<p><font size="2">Struts有如下的主要功能：</font></p>
<p><font size="2">1. 包含一个controller servlet，能将用户的请求发送到相应的Action对象。</font></p>
<p><font size="2">2. JSP自由tag库，并且在controller servlet中提供关联支持，帮助开发员创建交互式表单应用。</font></p>
<p><font size="2">3. 提供了一系列实用对象：XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。</font></p>
<p><font size="2">Struts是Jakarta项目的一部分，主页在<a href="http://jakarta.apache.org/struts">http://jakarta.apache.org/struts</a>.</font></p>
<p><font size="2">Version 0.5的下载地址：<a href="http://jakarta.apache.org/builds/jakarta-struts/release/v0.5">http://jakarta.apache.org/builds/jakarta-struts/release/v0.5</a></font></p>
<p><font size="2"><br>1.1 1、什么是MVC模式。<br>MVC(Model/View/Controller)模式是国外用得比较多的一种设计模式，好象最早是在Smaltalk中出现。MVC包括三类对象。Model是应用对象，View是它在屏幕上的表示，Controller定义用户界面对用户输入的响应方式。</font></p>
<p><font size="2">1.2 2、是否所有JSP应用都该采用MVC模式？<br>不一定所有的JSP应用都该采用MVC模式。但对于大型应用来说，我认为还是该采用MVC模式。不使用MVC模式，用户界面界面设计往往将这些对象混在一起，而MVC则将它们分离以提高灵活性和复用性。</font></p>
<p><font size="2">1.3 3、Struts中能做XML吗，与Cocoon相比有何优点？<br>Struts把主要精力放在JSP上了。Cocoon才是专业级的XML Framework。</font></p>
<p><font size="2"><br>2. Struts的安装<br>2.1 安装Struts需要的软件</font></p>
<p><font size="2">Java Development Kit - 你需要download和install 1.2(或之后)版本的JDK。下载地址：<a href="http://java.sun.com/j2se">http://java.sun.com/j2se</a><br>Servlet Container - 通常的选择是下载Tomcat(至少是3.1版，推荐使用3.2版)。下载地址：<a href="http://jakarta.apache.org/tomcat">http://jakarta.apache.org/tomcat</a><br>Ant Build System - 如果你通过Struts源码发布包安装，你必须下载1.1或之后版本的ant build system。在你通过Struts来开发你自己的Web应用程序是，我也推荐使用ant来build你的应用。下载地址：http: //jakarta.apache.org/ant<br>Servlet API Classes - 为了编译Structs自己，或应用程序使用Struts，你需要一个包含Servlet和JSP API对象的servlet.jar包。大多数Servlet container（例如Tomcat)已经自带了这个文件。否则，你必需下载：http: //jakarta.apache.org/builds/jakarta-servletapi<br>XML Parser - Structs需要一个与Java API for XML Parsing(JAXP)规格兼容的XML处理器。我推荐使用Xerces。下载地址：<a href="http://xml.apache.org/xerces-j">http://xml.apache.org/xerces-j</a><br>Xalan XSLT Processor - 如果你通过Structs源码发布版来构造你的Structs系统，你必须下载和安装1_2_D01或之后版本的Xalan XSLT处理器(Xerces中已自带Xalan)。这个处理器用于将基于XML的Structs文档转换为Html文档。</font></p>
<p><font size="2"><br>2.2 通过源码构造Structs</font></p>
<p><font size="2">1.下载Structs的源码发布包。<br>2.设置ANT_HOME环境变量，指向你的Ant目录。<br>3.设置JAVA_HOME环境变量，指向你的JDK目录。<br>4.设置SERVLETAPI_HOME环境变量，指向你的Servlet API目录（如果你的CLASSPATH已经包含了servlet.jar，就不需要指定该目录）<br>5.将Structs的源码发布包进行解包。<br>6.进入Structs目录，运行以下命令：<br>./build.sh dist<br>该命令将创建Struts的二进制发布包，目录在../dist/structs(相对于你的编译目录）。</font></p>
<p><font size="2"><br>2.3 通过Struts的二进制发布包安装Structs</font></p>
<p><font size="2">1.下载Struts的二进制发布版。<br>2.将Struts的二进制发布版进行解包。(如果你是通过Struts源码构造Struts，build的结果就已经是已解包的Struts)。解包后的Struts包含以下内容：<br>lib/struts.jar - 这个文件包含了Struts的所有Java对象。你需要把它拷贝到你的Web应用的WEB-INF/lib目录。<br>lib/structs.tld - 这是一个"tag library descriptor"文件，它描述了Struts库的自由tag。需要将它拷贝到你的Web应用的WEB-INF目录。<br>webapps/struts-documentation.war - 这是一个"web application archive"文件，包含了所有的Struts文档。你可以将它安装到支持Servlet API 2.2或之后版本的servlet container(推荐使用tomcat)中。<br>webapps/struts-example.war - 这是一个web应用实例，它广泛地演示了Struts的许多功能。你可以将它安装到兼容Servlet2.2或之后版本以及JSP1.1或之后版本规范的servlet容器中(推荐使用tomcat)。<br>webapps/struts-test.war - 这个web应用包含了Struts支持的许多tag的测试网页，可以作为使用Struts tag的例子。</font></p>
<p><font size="2">可通过以下的步骤在你自己的应用程序中使用Struts：<br>1.将Struts目录的lib/struts.jar拷贝到web应用的WEB-INF/lib目录。<br>2.将Struts目录的lib/struts*.tld拷贝到web应用的WEB-INF目录。<br>3. 修改Web应用目录的WEB-INF/web.xml文件，增加一个&lt;servlet&gt;元素来定义controller servlet，增加一个&lt;servlet-mapping&gt;元素来建立URI请求与servlet的对应关系。可以参照Struts例子中的WEB-INF/web.xml文件来了解详细的语法要求。<br>4.修改Web应用目录的WEB-INF/web.xml文件，使之包含以下的tag库定义：<br>&lt;taglib&gt;<br>&lt;taglib-uri&gt;/WEB-INF/struts.tld&lt;/taglib-uri&gt;<br>&lt;taglib-location&gt;/WEB-INF/struts.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;<br>&lt;taglib&gt;<br>&lt;taglib-uri&gt;/WEB-INF/struts-bean.tld&lt;/taglib-uri&gt;<br>&lt;taglib-location&gt;/WEB-INF/struts-bean.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;<br>&lt;taglib&gt;<br>&lt;taglib-uri&gt;/WEB-INF/struts-logic.tld&lt;/taglib-uri&gt;<br>&lt;taglib-location&gt;/WEB-INF/struts-logic.tld&lt;/taglib-location&gt;<br>&lt;/taglib&gt;<br>5.创建一个WEB-INF/action.xml文件来定义你的web应用的action映射关系。可以参照Struts例子中的action.xml文件来了解详细的语法要求。<br>6.在使用Struts tag库的JSP网页中加入以下tag库定义：<br>&lt;@ taglib uri="/WEB-INF/struts.tld" prefix="struts" %&gt;<br>&lt;@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %&gt;<br>&lt;@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %&gt;<br>7.最后，在编译你的web应用的java程序时，不要忘了在CLASSPATH中包含struts.jar文件哟。</font></p>
<p><font size="2">&nbsp;</font></p><img src ="http://www.blogjava.net/hellotony/aggbug/19608.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hellotony/" target="_blank">Tony</a> 2005-11-13 21:32 <a href="http://www.blogjava.net/hellotony/articles/19608.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>