最近研究了一下hibernate和Struts2 ,今天突然想把两个框架结合在一起做一个简单的小程序,这个小程序意在将流程走通,不实现什么其它的功能,也不死抠细节的问题。最后我决定就设一个登陆框,然后将输入的数据通过hibernate存入数据库,然后将输入的值通过Struts2显示在另外一个页面。
闲话少说,下面就让我们开始吧。
第一步,我们从Struts开始,先导入Struts 2必须的包,因为刚入门,建议直接引入struts-x.x.x\apps\WEB-INF\lib目录下所有的jar包,目录如下
第二步,配置web.xml文件,直接复制struts-x.x.x\apps\WEB-INF目录下web.xml的如下部分到自己的工程下的web.xml里即可
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
第三步:复制struts-x.x.x\apps\WEB-INF\src\java目录下的struts.xml文件到自己工程的src目录下,并作出相应修改,我修改后的代码如下所示
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" /><pre name="code" class="html"> <package name="front" namespace="/front" extends="struts-default">
<action name="hello" class="com.struts.hibernate.action.UserAction" method="getUser">
<result >/hello.jsp</result>
</action>
</package>
</struts>
这样我们就把配置搞定了,接着我们再写下测试代码, 在index,jsp里我是这样写的,他的功能就是对两个对话框输入相应的值然后提交表单,太简单就不做注释了
<html>
<head>
<script language=javascript>
function go(){
if(document.getElementById("username").value==""){
alert("用户名不能为空");
return;
}
if(document.getElementById("password").value==""){
alert("密码不能为空");
return;
}
document.userInformation.submit();
}
</script>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="front/hello" name="userInformation">
<input type="text" name="username" id="username"/>
<input type="text" name="password" id="password"/>
<input type="hidden" name="flag" value="1">
<input type="button" value="提交" οnclick="go()"/>
</form>
</body>
</html>
在后台我们不处理直接返回success,看看能否在hello.jsp显示结果,后台的代码如下图所示
public class UserAction extends ActionSupport{<pre name="code" class="html">private static final long serialVersionUID = 1L;
private String password;
private String username;
public String getUser(){<pre name="code" class="html">return SUCCESS;
}
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public void setPassword(String password) {
</span>this.password = password;
}
public void setUsername(String username) {
</span>this.username = username;
}
我们hello.jsp页面代码入下所示
<body>
用户:<s:property value="username"/><br>
密码:<s:property value="password"/>
</body>
输入和显示界面如下所示:
结果入下图所示:
麻雀虽小五脏俱全,一个简单的Struts流程就走通了,下一篇我们将在这个基础上加上hibernate,将页面里输入的数据存入数据库中~~~