WEB页面写了两个简单的应用了Freemarker 2.3的HTML片段,可以完成该功能的显示
site.html部分代码
<h5>
<a href="/admin/site/add">创建站点</a>
</h5>
<div class="table_box">
<table class="list">
<tbody>
<tr>
<th width="4%">id</th>
<th width="35%">名称</th>
<th width="12%">操作</th>
</tr>
<#list sites as site>
<tr>
<td style="text-align: left;">${site.id}</td>
<td style="text-align: left;">${site.name}</td>
<td style="text-align: left;"> <a
href="/admin/site/delete/${site.id}">删除</a> <a
href="/admin/site/edit/${site.id}">修改</a>
</td>
</tr>
</#list>
</tbody>
</table>
</div>
add.html 代码
<h5>站点管理 ---> 创建站点</h5>
<div class="form_box">
<form name="site" action="/admin/site/save" method="post">
<#include "/admin/site/_form.html" />
</form>
</div>
_form.html代码
<fieldset class="solid">
<input type="hidden" name="id" value="<#if site??>${(site.id)!}<#else>99</#if>" />
<div>
<label>名称</label>
<input type="text" name="name" value="${(site.name)!}" />${nameMsg!}
</div>
<div>
<label>URL</label>
<input type="text" name="url" value="${(site.url)!}" />${urlMsg!}
</div>
<div>
<label>说明</label>
<textarea name="comment" cols="50" rows="5">${(site.comment)!}</textarea>${contentMsg!}
</div>
<div>
<label> </label>
<input value="提交" type="submit">
</div>
</fieldset>
以下为项目中web页面的文件结构
这个应用需要lib目录如下
小结,说一些写这个简单流程过程中遇到的一些问题
1. Hibernate 执行数据库操作时,currentSession为null, 原因两个,一是hibernate的配置需要放在web.xml的
context-param中配置,二是Service的方法必须有事物描述
2.页面中应用静态资源找不到的问题,通过将image,js,css等资源的目录配置mvc:resources解决
3.自增主键,新增报类型不匹配问题,这个问题实际上是页面向Controller传递数据时,由于id为空,被当做字符串“”,通过在新增页面中给id赋个任意整数值可以解决,该值不会被作为主键插入数据库中
4.页面路径问题,页面中的根路径其实是指向配置中指定的freemarker模板根目录
5.实体类中enum字段的处理,通过对该字段增加注解@Enumerated(EnumType.STRING)解决
都是些小问题。
在搭建这个示例项目过程中,参考查阅了一些网上资料。以上是自己做的整个流程的一个记录。
《完》