最近在学struts。没有多久。决定把我的学习过程写下来。
我用的struts2.0.14,和Jdeveloper。服务器jdeveloper内嵌有OC4J。
其实对于新手来说struts的版本和工具并没有什么好大的要求,你用windows记事本来写一样的可以。
今天我就写了个登录的入门。
在jdeveloper里面他顶层是一个application,下面接着是project。
刚刚打开时,是一个空的app,然后新建有一个空的project。
然后我一次创建了两个jsp页面,login.jsp和done.jsp,struts.xml和一个action。建好后层次图:
然后倒入struts的包:
这些都是最少需要的包。下载我就不用说了吧。
接下来就是写jsp页面了。
code:
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title>O(∩_∩)O~~</title>
<style type="text/css">
body {
background-color: #f7f7f7;
}
</style>
</head>
<body><div align="center">
<s:form action="login" method="POST" namespace="">
<s:textfield label="姓名" name="name"/>
<s:textfield label="性别" name="sex"/>
<s:reset value="重置"/>
<s:submit value="提交"/>
</s:form>
</div></body>
</html>
大家要注意这句:<%@ taglib prefix="s" uri="/struts-tags"%> 不能少哦。
然后是done.jsp,这里我们只是做个标记就好了。
<body>done.jsp</body>
然后是配置struts.xml文件
<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="test" extends="struts-default">
<action name="login" class="actions.LoginAction">
<result name="done" >/done.jsp</result>
<result name="failed" >/login.jsp</result>
<result name="input" >/login.jsp</result>
</action>
</package>
</struts>
package的 extends 属性 是指明继承。
class,指定了这个action的class文件。java类
result的name属性的意思是 ,如: 当action返回done字符串时,我们就到done.jsp.另外两个类似。
上面的文档申明不能掉。
总结结构式package——》action——》returns 有了package就能很好的对action进行分类。至于他更多的功能,下回分解。
接下来是web.xml
<?xml version = '1.0' encoding = 'GBK'?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
这个的主要作用就是把所有的请求转发到控制器。它其实就是一个过滤器。
然后是action。
package actions;
public class LoginAction{
private String name;
private String sex;
public LoginAction() {
}
public String execute(){
return "done";
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
}
其实action是个POJO(POJO:就是再简单不过的java类)他不依赖servletAPI,一改struts1的坏处。里面的变量,要和login页面的输入框的名字要一样,这样当请求转发到action的时候,struts2就可以把JSP页面输入框的参数通过setter来放置在action里面。
就这样就OK了。
点击运行,默认的服务器是OC4J。
由于我们没有验证,所有点提交就可以了。
结果:
大家一定要注意struts.xml文件的配置,不要漏掉什么了。
今天我就做到这里吧。
更新:纳米盘下载地址:http://d.namipan.com/d/6c6f49cbd633d68f6385b334d435ce6aeb3c32961d893f00。