struts+spring+hibernate的web应用<四> Web层代码编写(2)
接着就是写资源文件了。
在com.game.resources包中添加ApplicationResourcesProducts.properties文件。如果你的eclipse中有Properties Editor这个插件,就可以用Properties Editor打开资源文件进行编写,省去了用命令行转换格式的麻烦。配置内容如下:
errors.minlength={0}不能小于 {1} 个字符.
errors.maxlength={0}不能大于 {1} 个字符.
errors.invalid={0}输入格式不对.
errors.byte={0}必须为字节.
errors.short={0}必须为短整型.
errors.integer={0}必须为整型.
errors.long={0}必须为长整型.
errors.float={0}必须为浮点型.
errors.double={0}必须为双精度型.
errors.date={0}不是一个正确的日期或格式不对.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is not a valid credit card number.
errors.email={0}不是一个有效的email地址.
errors.gameNameCn=游戏中文名称
errors.gameNameEn=游戏英文名称
errors.gameCapacity=碟数
errors.gamePrice=价格
需要注意的是
这一节是不能省去的。
接下来就是写页面文件了。在products文件夹中添加如下页面。
index.jsp页面代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title>游戏软件管理系统</title>
</head>
<body>
<a href="/game/getProducts.do?method=doGetProducts&&flag=1">进入游戏软件管理单元</a>
</body>
</html>
products.jsp页面代码:
<%@ taglib uri="struts-html" prefix="html" %>
<%@ taglib uri="struts-logic" prefix="logic" %>
<%@ taglib uri="struts-bean" prefix="bean" %>
<%
String flag=(String)request.getAttribute("flag");
String totalRows=(String)request.getAttribute("totalRows");
String fieldname="";
String value="";
if(flag.equals("2")){
fieldname=(String)request.getAttribute("fieldname");
value=(String)request.getAttribute("value");
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title></title>
<script language = "JavaScript">
function btnQuery() {
if(myfm.value.value=="")
{
alert("请输入查询关键字!");
}else{
window.location.href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname="+myfm.fieldname.value+"&&value="+myfm.value.value;
}
}
</script>
</head>
<body>
<form name="myfm" method="post">
<table border="1">
<tr>
<td>
<a href="/game/getProducts.do?method=doGetProducts&&flag=1">察看所有记录</a>
</td>
<td>
<a href="/game/addProductPage.do?method=doAddProductPage&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">添加</a>
</td>
<td>
<select name="fieldname" >
<option value="gameNameCn">中文名称</option>
<option value="gameNameEn">英文名称</option>
<option value="gameCapacity">碟数</option>
<option value="gameVersion">版本</option>
<option value="gameMedia">介质</option>
<option value="gameCopyright">版权</option>
</select>
<input value="" name="value" />
<a href="#" onclick="btnQuery()">查询</a>
</td>
</tr>
</table>
<br>
<br>
<table border="1">
<tr>
<td>游戏中文名称</td>
<td>游戏英文名称</td>
<td>软件版本</td>
<td>软件介质</td>
<td>碟数</td>
<td>版权</td>
<td>价格(元)</td>
<td>攻略</td>
</tr>
<logic:iterate id="pd" name="productsList">
<tr>
<td><a href="/game/getProduct.do?method=doGetProduct&&flag=<%=flag%>&&gameId=<bean:write name="pd" property="gameId"/>&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>"><bean:write name="pd" property="gameNameCn"/></a></td>
<td><bean:write name="pd" property="gameNameEn"/></td>
<td>
<logic:equal name="pd" property="gameVersion" value="1">
中文版
</logic:equal>
<logic:equal name="pd" property="gameVersion" value="2">
英文版
</logic:equal>
</td>
<td>
<logic:equal name="pd" property="gameMedia" value="1">
CD
</logic:equal>
<logic:equal name="pd" property="gameMedia" value="2">
DVD5
</logic:equal>
<logic:equal name="pd" property="gameMedia" value="3">
DVD9
</logic:equal>
</td>
<td><bean:write name="pd" property="gameCapacity"/></td>
<td>
<logic:equal name="pd" property="gameCopyright" value="1">
正版
</logic:equal>
<logic:equal name="pd" property="gameCopyright" value="2">
翻版
</logic:equal>
</td>
<td><bean:write name="pd" property="gamePrice"/></td>
<td><bean:write name="pd" property="gameContent"/></td>
</tr>
</logic:iterate>
<tr>
<%if(flag.equals("1")){%>
<td colspan="8" align="right" class="head">
共有 <%=totalRows%>条记录
第 <bean:write name="PAGER" property="currentPage"/>页
共 <bean:write name="PAGER" property="totalPages"/>页
<html:link action="/getProducts.do?method=doGetProducts&&flag=1&&pagerMethod=first" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">首页</html:link>
<html:link action="/getProducts.do?method=doGetProducts&&flag=1&&pagerMethod=previous" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">上一页</html:link>
<html:link action="/getProducts.do?method=doGetProducts&&flag=1&&pagerMethod=next" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">下一页</html:link>
<html:link action="/getProducts.do?method=doGetProducts&&flag=1&&pagerMethod=last" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">尾页</html:link>
</td>
<%}else if(flag.equals("2")){%>
<% Pager pager=(Pager)request.getAttribute("PAGER");%>
<td colspan="8" align="right" class="head">
共有 <%=totalRows%>条记录
第 <bean:write name="PAGER" property="currentPage"/>页
共 <bean:write name="PAGER" property="totalPages"/>页
<a href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname=<%=fieldname%>&&value=<%= value%>&&pagerMethod=first&¤tPage=<%=pager.getCurrentPage()%>" >首页</a>
<a href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname=<%=fieldname%>&&value=<%= value%>&&pagerMethod=previous&¤tPage=<%=pager.getCurrentPage()%>" >上一页</a>
<a href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname=<%=fieldname%>&&value=<%= value%>&&pagerMethod=next&¤tPage=<%=pager.getCurrentPage()%>" >下一页</a>
<a href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname=<%=fieldname%>&&value=<%= value%>&&pagerMethod=last&¤tPage=<%=pager.getCurrentPage()%>" >尾页</a>
</td>
<%}%>
</tr>
</table>
</form>
</body>
</html>
addproduct.jsp页面代码:
<%@ taglib uri="struts-html" prefix="html" %>
<%@ taglib uri="struts-logic" prefix="logic" %>
<%@ taglib uri="struts-bean" prefix="bean" %>
<%
String flag=(String)request.getAttribute("flag");
String fieldname="";
String value="";
if(flag.equals("2")){
fieldname=(String)request.getAttribute("fieldname");
value=(String)request.getAttribute("value");
}
String maxid=(String)request.getAttribute("maxid");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title></title>
<html:base/>
<html:javascript formName="productsForm" method="validate"/>
<script Language="JavaScript">
function btn_AddFolder() {
if(confirm("确定要保存吗?")){
if(document.productsForm.onsubmit()){
document.forms[0].submit();
}
}
}
</script>
</head>
<body>
<a href="/game/returnProduct.do?method=doReturnProduct&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">返回</a>
<html:form action="/addProduct.do" onsubmit="return validate(this)">
<table border="1">
<tr>
<td>游戏中文名称</td>
<td>游戏英文名称</td>
<td>软件版本</td>
<td>软件介质</td>
<td>碟数</td>
<td>版权</td>
<td>价格(元)</td>
<td>攻略</td>
</tr>
<tr>
<td><html:text property="gameNameCn"/></td>
<td><html:text property="gameNameEn"/></td>
<td>
<html:select property="gameVersion" >
<html:option value= "2">英文版 </html:option>
<html:option value= "1">中文版</html:option>
</html:select>
</td>
<td>
<html:select property="gameMedia" >
<html:option value= "1">CD </html:option>
<html:option value= "2">DVD5</html:option>
<html:option value= "3">DVD9</html:option>
</html:select>
</td>
<td><html:text property="gameCapacity" size="5"/></td>
<td>
<html:select property="gameCopyright" >
<html:option value= "2">翻版 </html:option>
<html:option value= "1">正版</html:option>
</html:select>
</td>
<td><html:text property="gamePrice"/></td>
<td><html:text property="gameContent"/></td>
</tr>
</table>
<html:hidden property="gameId" value="<%= maxid%>"/>
<html:hidden property="method" value="doAddProduct"/>
<html:hidden property="flag" value="<%= flag%>"/>
<html:hidden property="fieldname" value="<%= fieldname%>"/>
<html:hidden property="value" value="<%=value%>"/>
<input type="button" value="保存" onclick="btn_AddFolder()"/>
</html:form>
</body>
</html>
product.jsp页面代码:
<%@ taglib uri="struts-html" prefix="html" %>
<%@ taglib uri="struts-logic" prefix="logic" %>
<%@ taglib uri="struts-bean" prefix="bean" %>
<%
String flag=(String)request.getAttribute("flag");
String fieldname="";
String value="";
if(flag.equals("2")){
fieldname=(String)request.getAttribute("fieldname");
value=(String)request.getAttribute("value");
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title></title>
<html:javascript formName="productsForm" method="validate"/>
</head>
<body>
<a href="/game/addProductPage.do?method=doAddProductPage&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">添加</a>
<a href="/game/returnProduct.do?method=doReturnProduct&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">返回</a>
<a href="/game/deleteProduct.do?method=doDeleteProduct&&flag=<%= flag%>&&gameId=<bean:write name="pd" property="gameId"/>&&fieldname=<%=fieldname%>&&value=<%= value%>">删除</a>
<br>
<br>
<html:form action="/updateProduct.do" onsubmit="return validate(this)">
<table border="1">
<tr>
<td>游戏中文名称</td>
<td>游戏英文名称</td>
<td>软件版本</td>
<td>软件介质</td>
<td>碟数</td>
<td>版权</td>
<td>价格(元)</td>
<td>攻略</td>
</tr>
<tr>
<td><html:text name="pd" property="gameNameCn"/></td>
<td><html:text name="pd" property="gameNameEn"/></td>
<td>
<html:select name="pd" property="gameVersion" >
<html:option value= "1">中文版 </html:option>
<html:option value= "2">英文版</html:option>
</html:select>
</td>
<td>
<html:select name="pd" property="gameMedia" >
<html:option value= "1">CD </html:option>
<html:option value= "2">DVD5</html:option>
<html:option value= "3">DVD9</html:option>
</html:select>
</td>
<td><html:text name="pd" property="gameCapacity" size="5"/></td>
<td>
<html:select name="pd" property="gameCopyright" >
<html:option value= "1">正版 </html:option>
<html:option value= "2">翻版</html:option>
</html:select>
</td>
<td><html:text name="pd" property="gamePrice" size="10"/></td>
<td><html:text name="pd" property="gameContent"/></td>
</tr>
</table>
<html:hidden property="method" value="doUpdateProduct"/>
<html:hidden name="pd" property="gameId" />
<html:hidden property="flag" value="<%= flag%>"/>
<html:hidden property="fieldname" value="<%= fieldname%>"/>
<html:hidden property="value" value="<%=value%>"/>
<html:submit property="submit" value="保存"></html:submit>
</html:form>
</body>
</html>
product_success.jsp页面代码:
<%
String flag=(String)request.getAttribute("flag");
String fieldname="";
String value="";
if(flag.equals("2")){
fieldname=(String)request.getAttribute("fieldname");
value=(String)request.getAttribute("value");
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title></title>
</head>
<body>
操作成功!
<a href="/game/returnProduct.do?method=doReturnProduct&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">返回</a>
<a href="/game/addProductPage.do?method=doAddProductPage&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">继续添加</a>
</body>
</html>
product_failure.jsp页面代码:
<%
String flag=(String)request.getAttribute("flag");
String fieldname="";
String value="";
if(flag.equals("2")){
fieldname=(String)request.getAttribute("fieldname");
value=(String)request.getAttribute("value");
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title></title>
</head>
<body>
操作失败!
<a href="/game/returnProduct.do?method=doReturnProduct&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">返回</a>
</body>
</html>
最后在tld文件夹中添加下列tld文件。
至此,整个项目基本编写完了,运行tomcat,看看我们的项目的效果吧!
在地址栏输入http://localhost:8088/game/products/index.jsp
然后点击“进入游戏软件管理单元”链接,主界面出现了。