1、Struts2 的配置文件
这些配置文件多是返回JSON字符串,继承json-default,注意web项目应该有struts-json-plugin插件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.action.extension" value="do,action,html" />
<package name="ebpg" extends="json-default" >
<!-- 登录 action -->
<action name="loginAct" class="edu.freshen.action.LoginAction" >
<result name="OK" type="json" >
<param name="root">ai</param>
</result>
</action>
<!-- 注册 action -->
<action name="regAccountAct" class="edu.freshen.action.LoginAction"
method="regestAccount" >
<result name="success" type="json" >
<param name="root">ai</param>
</result>
</action>
<!-- 查询电子类别 action -->
<action name="queryEbTypeAction" class="edu.freshen.action.EbookTypeAction" >
<result name="success" type="json" >
<param name="root">bookTypes</param>
</result>
</action>
<!-- 查询所有 电子书 -->
<action name="queryAllEbAction" class="edu.freshen.action.EbookInfoAction" >
<result name="success" type="json">
<param name="root">ebooks</param>
</result>
</action>
<!-- 根据类型 查询电子书 -->
<action name="queryEbByTypeAction" class="edu.freshen.action.EbookInfoAction"
method="queryBooksByTypeId">
<result name="success" type="json">
<param name="root">ebooks</param>
</result>
</action>
<!-- 查找评论 -->
<action name="queryComAct" class="edu.freshen.action.EbookComAction">
<result name="success" type="json">
<param name="root">items</param>
</result>
</action>
<!-- 新加 评论 -->
<action name="createComAct" class="edu.freshen.action.EbookComAction"
method="createComment">
<result name="success" type="json">
<param name="root">commentStr</param>
</result>
</action>
<!-- 新添加 用户信息 -->
<action name="newUserInfoAct" class="edu.freshen.action.UserInfoAction">
<result name="success" type="json">
<param name="root">userInfo</param>
</result>
</action>
<!-- 根据账户 id,查找 用户信息 -->
<action name="queryUserByAccAct" class="edu.freshen.action.UserInfoAction"
method="queryUser">
<result name="success" type="json">
<param name="root">userInfo</param>
</result>
</action>
</package>
</struts>
2、action的编写
LoginAction,处理账户登录功能
public class LoginAction extends ActionSupport {
//账户名和密码
private String loginName;
private String loginPwd;
//
private AccountInfo ai;
//实现登录验证
public String execute(){
System.out.println("LoginAction running……"+loginName+" "+ loginPwd);
//调用DAo,验证登录信息
ai =new AccountInfoDao().queryAccountByLogin(loginName, loginPwd);
if(ai==null){
}else{
}
return "OK";
}
//实现 账户注册
public String regestAccount(){
//判空
if(loginName==null || loginName.trim().length()<3 || loginPwd==null || loginPwd.trim().length()<3)
return SUCCESS;
int r=new AccountInfoDao().checkLoginName(loginName);
if(r==0){
//创建 需要注册账户的基本信息
AccountInfo ai =new AccountInfo();
ai.setLoginName(loginName);
ai.setLoginPwd(loginPwd);
ai.setLevel(0);
ai.setScore(0);
ai.setLastLoginDate(new Date());
String ip = ServletActionContext.getRequest().getRemoteAddr();
ai.setLastLloginIP(ip);
int n =new AccountInfoDao().insertAccount(ai);
System.out.println("注册账户的结果是 "+ n);
this.ai=ai;
}else{
System.out.println("账户名已存在");
}
return SUCCESS;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPwd() {
return loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
public AccountInfo getAi() {
return ai;
}
public void setAi(AccountInfo ai) {
this.ai = ai;
}
}
处理用户信息action
public class UserInfoAction extends ActionSupport {
private UserInfo userInfo; //用户信息 对象
private int accountId; //账户ID
//新增 用户
public String execute(){
new UserInfoDao().insertUserInfo(userInfo);
return SUCCESS;
}
//根据登录账户的ID,查找用户信息
public String queryUser(){
userInfo =new UserInfoDao().queryUserByAccountId(accountId);
return SUCCESS;
}
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
public int getAccountId() {
return accountId;
}
public void setAccountId(int accountId) {
this.accountId = accountId;
}
}
处理电子书类别action
public class EbookTypeAction extends ActionSupport {
public List<EbookType> bookTypes;
public String execute(){
bookTypes = new EbookTypeDao().queryAllbookType();
return SUCCESS;
}
public List<EbookType> getBookTypes() {
return bookTypes;
}
public void setBookTypes(List<EbookType> bookTypes) {
this.bookTypes = bookTypes;
}
}
处理电子书访问action
public class EbookInfoAction extends ActionSupport {
private List<EbookInfo>ebooks;
private int ebookTypeId;
//查询所有电子书
public String execute(){
ebooks=new EbookInfoDao().queryAllBooks();
return SUCCESS;
}
//根据指定的类别,查询电子书
public String queryBooksByTypeId(){
ebooks =new EbookInfoDao().queryBooksByType(ebookTypeId);
return SUCCESS;
}
public List<EbookInfo> getEbooks() {
return ebooks;
}
public void setEbooks(List<EbookInfo> ebooks) {
this.ebooks = ebooks;
}
public int getEbookTypeId() {
return ebookTypeId;
}
public void setEbookTypeId(int ebookTypeId) {
this.ebookTypeId = ebookTypeId;
}
}
处理评论的action
public class EbookComAction extends ActionSupport {
private int ebookId; //电子书的id
private List<EbookComment> items ; //存放评论对象
private String commentStr; //评论的具体内容
private int accountId; //发布评论信息的账户ID
//查出指定 电子书的 所有评论信息
public String execute(){
items = new EbookCommentDao().queryBookComment(ebookId);
return SUCCESS;
}
//对指定的书籍 进行评论
public String createComment(){
EbookComment ebc =new EbookComment();
ebc.setAccountId(accountId);
ebc.setComment(commentStr);
ebc.setCreateDate(new Date());
ebc.setEbookId(ebookId);
System.out.println("发布评论 :"+ebc);
int n =new EbookCommentDao().insertNewComment(ebc);
if(n>0){
}else{
}
return SUCCESS;
}
public int getEbookId() {
return ebookId;
}
public void setEbookId(int ebookId) {
this.ebookId = ebookId;
}
public List<EbookComment> getItems() {
return items;
}
public void setItems(List<EbookComment> items) {
this.items = items;
}
public String getCommentStr() {
return commentStr;
}
public void setCommentStr(String commentStr) {
this.commentStr = commentStr;
}
public int getAccountId() {
return accountId;
}
public void setAccountId(int accountId) {
this.accountId = accountId;
}
}