关于struts2中@validations对于方法的校验

在struts2中,我使用下面的方法请求。
通过Action!Method.action的方法实现了dispatchAction。现在的情况是action里的execute已经没有了。被若干个crud方法取代。

现在想使用@validations用来针对crud方法中的变量做校验.但是比如下面的action.[code]package com.tongcard.merchant.web.actions.privilege;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.struts2.config.Namespace;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;
import org.apache.struts2.dispatcher.ServletRedirectResult;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.Validation;
import com.opensymphony.xwork2.validator.annotations.Validations;
import com.opensymphony.xwork2.validator.annotations.ValidatorType;
import com.tongcard.merchant.web.helper.BaseAction;
import com.tongcard.merchant.web.helper.BusinessResult;
import com.tongcard.merchant.web.helper.PageHelperList;
import com.tongcard.merchant.web.manager.PrivilegeManager;
import com.tongcard.merchant.web.manager.impl.PrivilegeManagerImpl;
import com.tongcard.merchant.web.model.Role;
import com.tongcard.merchant.web.model.User;

@Namespace("/privilege")
@Results( {
@Result(name = "success", value = "/privilege/roleSearch.jsp"),
@Result(name = "input", value = "/privilege/roleNew.jsp", type = ServletRedirectResult.class),
@Result(name = "modify", value = "/privilege/roleModify.jsp"),
@Result(name = "login", value = "/login/login.jsp") })
public class RoleAction extends BaseAction {
/**
*
*/
private static final long serialVersionUID = 1L;

private static int pageSize = 5;

private int currentPage = 1;

private PageHelperList pageHelper;

private Role role;

private List<String> pages;

private String actions;

private String info;

private String roleId;

private List<Role> roles;

private PrivilegeManager privilegeManager;

[color=red]@Validations(requiredStrings = { @RequiredStringValidator(type = ValidatorType.SIMPLE, fieldName = "role.roleName", message = "角色名称不能为空") })[/color]
public String create() {
BusinessResult bres = null;
role
.setOrgCode(request.getSession().getAttribute("orgCode")
.toString());
bres = privilegeManager.newRole(role);
info = bres.getInfo();
return Action.INPUT;
}

// 分页查询得到当前管理员所在机构下的角色。
public List<Role> buildRoleDivPageData(HashMap<String, String> map) {
List<Role> roles = null;
int count = privilegeManager.countRole(map.get("orgCode"));
if (count == 0) {
return null;
}
pageHelper = new PageHelperList(count, currentPage, pageSize);
map.put("begin", pageHelper.getPageStartRow() + "");
map.put("end", pageHelper.getPageEndRow() + "");
roles = privilegeManager.searchRoleByPage(map);
pages = new ArrayList<String>();
for (int i = 0; i < pageHelper.getTotalPages(); i++) {
pages.add(String.valueOf(i + 1));
}
return roles;
}


public String search() {
HashMap<String, String> map = new HashMap<String, String>();
User user = (User) (request.getSession().getAttribute("user"));
if (null == user) {
return "login";
}
map.put("orgCode", user.getOrgCode());
roles = buildRoleDivPageData(map);
return Action.SUCCESS;
}

public String show() {
role = privilegeManager.searchSimpleRoleByRoleId(Long.valueOf(roleId));
return "modify";
}


public String init() {
return Action.INPUT;
}

// @Validations(requiredStrings = { @RequiredStringValidator(type
// =ValidatorType.SIMPLE, fieldName = "role.roleName", message = "角色名称不能为空")
// })
public String update() {
BusinessResult bres = null;
bres = privilegeManager.modifyRole(role);
info = bres.getInfo();
request.setAttribute("role", role);
return "modify";
}

// 得到全部当前管理员所在机构下的角色
public List<Role> getRoles(String orgCode) {
List<Role> list = null;
list = privilegeManager.searchRolesByOrg(orgCode);
return list;
}

public String getActions() {
return actions;
}

public void setActions(String actions) {
this.actions = actions;
}

public PrivilegeManager getPrivilegeManager() {
return privilegeManager;
}

public void setPrivilegeManager(PrivilegeManagerImpl privilegeManager) {
this.privilegeManager = privilegeManager;
}

public String getInfo() {
return info;
}

public void setInfo(String info) {
this.info = info;
}

public void setPrivilegeManager(PrivilegeManager privilegeManager) {
this.privilegeManager = privilegeManager;
}

public Role getRole() {
return role;
}

public void setRole(Role role) {
this.role = role;
}

public List<String> getPages() {
return pages;
}

public void setPages(List<String> pages) {
this.pages = pages;
}

public static int getPageSize() {
return pageSize;
}

public static void setPageSize(int pageSize) {
RoleAction.pageSize = pageSize;
}

public int getCurrentPage() {
return currentPage;
}

public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

public PageHelperList getPageHelper() {
return pageHelper;
}

public void setPageHelper(PageHelperList pageHelper) {
this.pageHelper = pageHelper;
}

public String getRoleId() {
return roleId;
}

public void setRoleId(String roleId) {
this.roleId = roleId;
}

public List<Role> getRoles() {
return roles;
}

public void setRoles(List<Role> roles) {
this.roles = roles;
}
}
[/code]
create方法上的红色字体表示create时的一个校验。但是当我执行另一个请求:role!search.action时,却会执行role!create.action方法。真的很奇怪。不知道是哪里配置的问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值