手把手struts入门示例
2008-03-05 14:59
309 查看
读书不求甚解,遇到不懂的先不用管它,照着指示做就行了。所谓实践出真知,做完不用我解析,你自己都会明白的。让我们先把它运行起来,培养点成就感再说。要不没有动力。
开发环境:
Tomcat 5.5
struts 1.3.8
SDK j2sdk 1.5
关于环境的配置可以参考我另外一篇文章《超简单配置Tomcat+struts》
我们要做的是一个简单的加法器,就是求1+1等于多少的。我们先看看效果图,所谓胸有成竹,心里有了成功后的形象才有明确的奋斗方向。
我们先来看看传统的JSP实现方法add.jsp
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%!
private int atoi(String str) ...{
int ret = 0;
try ...{
ret = Integer.parseInt(str);
}
catch (NumberFormatException ex) ...{/**//* Intentionally left blank */}
return ret;
}
private int add(int i1, int i2) ...{
return i1 + i2;
}
%>
<%
String parm1 = request.getParameter("parm1");
String parm2 = request.getParameter("parm2");
if (parm1 != null && parm2 != null) ...{
int i1 = atoi(parm1);
int i2 = atoi(parm2);
%>
<H2><%=i1%>+<%=i2%>=<%=add(i1, i2)%></H2>
<%
}
%>
<FORM action="add.jsp">
<INPUT TYPE="TEXT" NAME="parm1" SIZE=6></input>+
<INPUT TYPE="TEXT" NAME="parm2" SIZE=6></input>
<INPUT TYPE="SUBMIT" VALUE="=">
</FORM>
在浏览器中访问http://localhost:8080/add.jsp 看到我们要实现的效果了吧,ps:开始有一点成就感了吧。
struts是mvs结构,为了简单起见,我们省略掉M,直接把业务逻辑写进C中,
我们需要准备的文件有:
jsp文件: ①index.jsp ②queryForm.jsp ③showResult.jsp
Controller: ①AddSampleQueryForm.java ②AddSampleAction.java
<!-- index.jsp -->
<%...@ page contentType="text/html; charset=Shift_JIS" %>
<HTML>
<BODY>
<jsp:include page="include/queryForm.jsp" flush="false"/>
</BODY>
</HTML>
<!-- queryForm.jsp -->
<%...@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%-- struts1.1以下是uri="/tags/struts-html" -->
<html:form action="/add" focus="parm1">
<html:text property="parm1" size="6"/>+
<html:text property="parm2" size="6"/>
<html:submit property="submit" value="="/>
</html:form>
<!-- showResult.jsp -->
<%...@ page contentType="text/html; charset=Shift_JIS" %>
<%...@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%-- struts1.1以下是uri="tags/struts-bean" -->
<HTML>
<BODY>
<H2>
<bean:write name="QueryForm" property="parm1" scope="request"/>+
<bean:write name="QueryForm" property="parm2" scope="request"/>=
<bean:write name="QueryForm" property="result" scope="request"/>
</H2>
<jsp:include page="include/queryForm.jsp" flush="true"/>
</BODY>
</HTML>
//AddSampleQueryForm.java
package samples.add;
import org.apache.struts.action.ActionForm;
public class AddSampleQueryForm extends ActionForm ......{
private String parm1;
private String parm2;
private String result;
public String getParm1() ......{
return parm1;
}
public void setParm1(String parm1) ......{
this.parm1 = parm1;
}
public void setParm2(String parm2) ......{
this.parm2 = parm2;
}
public String getParm2() ......{
return parm2;
}
public String getResult() ......{
return result;
}
public void setResult(String result) ......{
this.result = result;
}
}
//AddSampleAction.java
package samples.add;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//如果怕麻烦的话,可以只写下面两句,
//import org.apache.struts.action.*;
//import javax.servlet.http.*;
//上面的写法是让我们清楚知道我们具体需要什么东西
public class AddSampleAction extends Action ...{
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
...{
AddSampleQueryForm queryForm = (AddSampleQueryForm)form;
int parm1 = Integer.parseInt(queryForm.getParm1());
int parm2 = Integer.parseInt(queryForm.getParm2());
int result = parm1 + parm2 ;
queryForm.setResult(String.valueOf(result));
return mapping.findForward("success");
}
}
编译:
javac -classpath "C:/.../apache-tomcat-5.5.12/common/lib/servlet-api.jar";"H:/.../struts-1.3.8/lib/struts-core-1.3.8.jar";. *.java
生成AddSampleQueryForm.class AddSampleAction.class
tomcat 5.0以上的servlet 类库是servlet-api.jar ,5.0以下是servlet.jar
struts1.3.8的类库是struts-core-1.3.8.jar,1.1的话是struts.jar
配置:
struts-1.3.8/lib/下有一个struts-blank-1.3.8.war,把它拷贝到apache-tomcat-5.5.12/webapps/下就会自动解压,生成apache-tomcat-5.5.12文件夹(或者使用解压软件如Lhaplus),我们可以把文件的名字改成我们想要的名字,在这里我们改成add(需要把tomcat停止才能改名字),然后把我们把我们编写的文件配置进去。最后我们的目录是这样的:
add
│
│ index.jsp
│ showResult.jsp
│
├─include
│ queryForm.jsp
│
├─META-INF
│ │ MANIFEST.MF
│ │
│ └─maven
│ └─org.apache.struts
│ └─struts-blank
│ pom.properties
│ pom.xml
│
├─pages
│ Welcome.jsp
│
└─WEB-INF
│ struts-config.xml
│ validation.xml
│ web.xml
│
├─classes
│ │ MessageResources.properties
│ │
│ └─samples
│ └─add
│ AddSampleAction.class
│ AddSampleQueryForm.class
│
├─lib
│ antlr-2.7.2.jar
│ commons-beanutils-1.7.0.jar
│ commons-chain-1.1.jar
│ commons-digester-1.8.jar
│ commons-logging-1.0.4.jar
│ commons-validator-1.3.1.jar
│ oro-2.0.8.jar
│ struts-core-1.3.8.jar
│ struts-taglib-1.3.8.jar
│ struts-tiles-1.3.8.jar
│
└─src
│ build.xml
│ README.txt
│
└─java
MessageResources.properties
我们还需要修改一下struts-config.xml
找到<form-beans>... ...</form-beans> <action-mappings>... ...</action-mappings>,添加
<form-bean name="QueryForm" type="samples.add.AddSampleQueryForm"/>
和
<action path="/add" type="samples.add.AddSampleAction" name="QueryForm"
scope="request" validate="false">
<forward name="success" path="/showResult.jsp"/>
</action>
添加我们的配置后,效果如下
跟我走到这里不容易啊,我们很快就可以看见我们的成果了。
访问http://localhost:8080/add
大功告成!功德无量!(不行的话重起一下tomcat和浏览器,还不行?你把问题写下来,有时间的我会回复的。)
...
<struts-config>
...
<form-beans>
<form-bean name="QueryForm" type="samples.add.AddSampleQueryForm"/>
...
</form-beans>
...
<action-mappings>
<action path="/add" type="samples.add.AddSampleAction" name="QueryForm"
scope="request" validate="false">
<forward name="success" path="/showResult.jsp"/>
</action>
...
</action-mappings>
...
</struts-config>
开发环境:
Tomcat 5.5
struts 1.3.8
SDK j2sdk 1.5
关于环境的配置可以参考我另外一篇文章《超简单配置Tomcat+struts》
我们要做的是一个简单的加法器,就是求1+1等于多少的。我们先看看效果图,所谓胸有成竹,心里有了成功后的形象才有明确的奋斗方向。
我们先来看看传统的JSP实现方法add.jsp
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%!
private int atoi(String str) ...{
int ret = 0;
try ...{
ret = Integer.parseInt(str);
}
catch (NumberFormatException ex) ...{/**//* Intentionally left blank */}
return ret;
}
private int add(int i1, int i2) ...{
return i1 + i2;
}
%>
<%
String parm1 = request.getParameter("parm1");
String parm2 = request.getParameter("parm2");
if (parm1 != null && parm2 != null) ...{
int i1 = atoi(parm1);
int i2 = atoi(parm2);
%>
<H2><%=i1%>+<%=i2%>=<%=add(i1, i2)%></H2>
<%
}
%>
<FORM action="add.jsp">
<INPUT TYPE="TEXT" NAME="parm1" SIZE=6></input>+
<INPUT TYPE="TEXT" NAME="parm2" SIZE=6></input>
<INPUT TYPE="SUBMIT" VALUE="=">
</FORM>
在浏览器中访问http://localhost:8080/add.jsp 看到我们要实现的效果了吧,ps:开始有一点成就感了吧。
struts是mvs结构,为了简单起见,我们省略掉M,直接把业务逻辑写进C中,
我们需要准备的文件有:
jsp文件: ①index.jsp ②queryForm.jsp ③showResult.jsp
Controller: ①AddSampleQueryForm.java ②AddSampleAction.java
<!-- index.jsp -->
<%...@ page contentType="text/html; charset=Shift_JIS" %>
<HTML>
<BODY>
<jsp:include page="include/queryForm.jsp" flush="false"/>
</BODY>
</HTML>
<!-- queryForm.jsp -->
<%...@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%-- struts1.1以下是uri="/tags/struts-html" -->
<html:form action="/add" focus="parm1">
<html:text property="parm1" size="6"/>+
<html:text property="parm2" size="6"/>
<html:submit property="submit" value="="/>
</html:form>
<!-- showResult.jsp -->
<%...@ page contentType="text/html; charset=Shift_JIS" %>
<%...@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%-- struts1.1以下是uri="tags/struts-bean" -->
<HTML>
<BODY>
<H2>
<bean:write name="QueryForm" property="parm1" scope="request"/>+
<bean:write name="QueryForm" property="parm2" scope="request"/>=
<bean:write name="QueryForm" property="result" scope="request"/>
</H2>
<jsp:include page="include/queryForm.jsp" flush="true"/>
</BODY>
</HTML>
//AddSampleQueryForm.java
package samples.add;
import org.apache.struts.action.ActionForm;
public class AddSampleQueryForm extends ActionForm ......{
private String parm1;
private String parm2;
private String result;
public String getParm1() ......{
return parm1;
}
public void setParm1(String parm1) ......{
this.parm1 = parm1;
}
public void setParm2(String parm2) ......{
this.parm2 = parm2;
}
public String getParm2() ......{
return parm2;
}
public String getResult() ......{
return result;
}
public void setResult(String result) ......{
this.result = result;
}
}
//AddSampleAction.java
package samples.add;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//如果怕麻烦的话,可以只写下面两句,
//import org.apache.struts.action.*;
//import javax.servlet.http.*;
//上面的写法是让我们清楚知道我们具体需要什么东西
public class AddSampleAction extends Action ...{
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
...{
AddSampleQueryForm queryForm = (AddSampleQueryForm)form;
int parm1 = Integer.parseInt(queryForm.getParm1());
int parm2 = Integer.parseInt(queryForm.getParm2());
int result = parm1 + parm2 ;
queryForm.setResult(String.valueOf(result));
return mapping.findForward("success");
}
}
编译:
javac -classpath "C:/.../apache-tomcat-5.5.12/common/lib/servlet-api.jar";"H:/.../struts-1.3.8/lib/struts-core-1.3.8.jar";. *.java
生成AddSampleQueryForm.class AddSampleAction.class
tomcat 5.0以上的servlet 类库是servlet-api.jar ,5.0以下是servlet.jar
struts1.3.8的类库是struts-core-1.3.8.jar,1.1的话是struts.jar
配置:
struts-1.3.8/lib/下有一个struts-blank-1.3.8.war,把它拷贝到apache-tomcat-5.5.12/webapps/下就会自动解压,生成apache-tomcat-5.5.12文件夹(或者使用解压软件如Lhaplus),我们可以把文件的名字改成我们想要的名字,在这里我们改成add(需要把tomcat停止才能改名字),然后把我们把我们编写的文件配置进去。最后我们的目录是这样的:
add
│
│ index.jsp
│ showResult.jsp
│
├─include
│ queryForm.jsp
│
├─META-INF
│ │ MANIFEST.MF
│ │
│ └─maven
│ └─org.apache.struts
│ └─struts-blank
│ pom.properties
│ pom.xml
│
├─pages
│ Welcome.jsp
│
└─WEB-INF
│ struts-config.xml
│ validation.xml
│ web.xml
│
├─classes
│ │ MessageResources.properties
│ │
│ └─samples
│ └─add
│ AddSampleAction.class
│ AddSampleQueryForm.class
│
├─lib
│ antlr-2.7.2.jar
│ commons-beanutils-1.7.0.jar
│ commons-chain-1.1.jar
│ commons-digester-1.8.jar
│ commons-logging-1.0.4.jar
│ commons-validator-1.3.1.jar
│ oro-2.0.8.jar
│ struts-core-1.3.8.jar
│ struts-taglib-1.3.8.jar
│ struts-tiles-1.3.8.jar
│
└─src
│ build.xml
│ README.txt
│
└─java
MessageResources.properties
我们还需要修改一下struts-config.xml
找到<form-beans>... ...</form-beans> <action-mappings>... ...</action-mappings>,添加
<form-bean name="QueryForm" type="samples.add.AddSampleQueryForm"/>
和
<action path="/add" type="samples.add.AddSampleAction" name="QueryForm"
scope="request" validate="false">
<forward name="success" path="/showResult.jsp"/>
</action>
添加我们的配置后,效果如下
跟我走到这里不容易啊,我们很快就可以看见我们的成果了。
访问http://localhost:8080/add
大功告成!功德无量!(不行的话重起一下tomcat和浏览器,还不行?你把问题写下来,有时间的我会回复的。)
...
<struts-config>
...
<form-beans>
<form-bean name="QueryForm" type="samples.add.AddSampleQueryForm"/>
...
</form-beans>
...
<action-mappings>
<action path="/add" type="samples.add.AddSampleAction" name="QueryForm"
scope="request" validate="false">
<forward name="success" path="/showResult.jsp"/>
</action>
...
</action-mappings>
...
</struts-config>
相关文章推荐
- Struts入门程序示例及基本执行过程
- 手把手struts入门示例 (续)
- Struts2 快速入门(hello struts2 简单示例,配置开发模式,导入struts源码,设置struts.xml源码提示)
- 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第三节)
- JAVA入门[6]-Mybatis简单示例
- Retrofit2入门示例
- 入门也流行简单 最简单的Spring入门示例
- Hadoop入门-WordCount示例
- Spring MVC 入门示例讲解
- SpringMVC入门小示例
- Appium入门示例(Java)
- struts使用list提交多行表单(提供完整示例)
- javascript闭包入门示例
- 爬虫框架Scrapy的第一个爬虫示例入门教程
- MyBatis入门示例
- Storm 入门示例
- SASS的介绍和应用示例入门
- struts(三)——struts框架实现登录示例
- Scrapy爬虫入门系列2 示例教程
- Struts2+Spring2+Hibernate3 web应用示例(二)