actionsupport请问这是怎么回事,我的action继承了ActionSupport类,但是没有在jsp页面出现必须输的提示信息反而跳转到
actionsupport 时间:2021-06-02 阅读:(
)
请问各位大师:action类继承ActionSupport,其中execute()和validate()是自动执行吗?还是自动执行哪一个
补充楼上
execute()方法有可能不执行吧。
这个方法主要看struts配置文件中method属性的配置。
配置的哪个名字的方法就执行哪个方法。
actionsupport实现了哪几个接口
actionsupport实现了 Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable 这几个接口
.opensymphony.xwork2;
.opensymphony.xwork2.inject.Container;
.opensymphony.xwork2.inject.Inject;
.opensymphony.xwork2.util.ValueStack;
.opensymphony.xwork2.util.logging.Logger;
.opensymphony.xwork2.util.logging.LoggerFactory;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable {
protected static Logger LOG = LoggerFactory.getLogger(ActionSupport.class);
private final ValidationAwareSupport validationAware = new ValidationAwareSupport();
private transient TextProvider textProvider;
private Container container;
public void setActionErrors(Collection errorMessages) {
validationAware.setActionErrors(errorMessages);
}
public Collection getActionErrors() {
return validationAware.getActionErrors();
}
public void setActionMessages(Collection messages) {
validationAware.setActionMessages(messages);
}
public Collection getActionMessages() {
return validationAware.getActionMessages();
}
@Deprecated
public Collection getErrorMessages() {
return getActionErrors();
}
@Deprecated
public Map> getErrors() {
return getFieldErrors();
}
public void setFieldErrors(Map> errorMap) {
validationAware.setFieldErrors(errorMap);
}
public Map> getFieldErrors() {
return validationAware.getFieldErrors();
}
public Locale getLocale() {
ActionContext ctx = ActionContext.getContext();
if (ctx != null) {
return ctx.getLocale();
} else {
if (LOG.isDebugEnabled()) {
LOG.debug("Action context not initialized");
}
return null;
}
}
public boolean hasKey(String key) {
return getTextProvider().hasKey(key);
}
public String getText(String aTextName) {
return getTextProvider().getText(aTextName);
}
public String getText(String aTextName, String defaultValue) {
return getTextProvider().getText(aTextName, defaultValue);
}
public String getText(String aTextName, String defaultValue, String obj) {
return getTextProvider().getText(aTextName, defaultValue, obj);
}
public String getText(String aTextName, List> args) {
return getTextProvider().getText(aTextName, args);
}
public String getText(String key, String[] args) {
return getTextProvider().getText(key, args);
}
public String getText(String aTextName, String defaultValue, List> args) {
return getTextProvider().getText(aTextName, defaultValue, args);
}
public String getText(String key, String defaultValue, String[] args) {
return getTextProvider().getText(key, defaultValue, args);
}
public String getText(String key, String defaultValue, List> args, ValueStack stack) {
return getTextProvider().getText(key, defaultValue, args, stack);
}
public String getText(String key, String defaultValue, String[] args, ValueStack stack) {
return getTextProvider().getText(key, defaultValue, args, stack);
}
public ResourceBundle getTexts() {
return getTextProvider().getTexts();
}
public ResourceBundle getTexts(String aBundleName) {
return getTextProvider().getTexts(aBundleName);
}
public void addActionError(String anErrorMessage) {
validationAware.addActionError(anErrorMessage);
}
public void addActionMessage(String aMessage) {
validationAware.addActionMessage(aMessage);
}
public void addFieldError(String fieldName, String errorMessage) {
validationAware.addFieldError(fieldName, errorMessage);
}
public String input() throws Exception {
return INPUT;
}
public String doDefault() throws Exception {
return SUCCESS;
}
public String execute() throws Exception {
return SUCCESS;
}
public boolean hasActionErrors() {
return validationAware.hasActionErrors();
}
public boolean hasActionMessages() {
return validationAware.hasActionMessages();
}
public boolean hasErrors() {
return validationAware.hasErrors();
}
public boolean hasFieldErrors() {
return validationAware.hasFieldErrors();
}
public void clearFieldErrors() {
validationAware.clearFieldErrors();
}
public void clearActionErrors() {
validationAware.clearActionErrors();
}
public void clearMessages() {
validationAware.clearMessages();
}
public void clearErrors() {
validationAware.clearErrors();
}
public void clearErrorsAndMessages() {
validationAware.clearErrorsAndMessages();
}
public void validate() {
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
public void pause(String result) {
}
private TextProvider getTextProvider() {
if (textProvider == null) {
TextProviderFactory tpf = new TextProviderFactory();
if (container != null) {
container.inject(tpf);
}
textProvider = tpf.createInstance(getClass(), this);
}
return textProvider;
}
@Inject
public void setContainer(Container container) {
this.container = container;
}
}在 struts2 中 实现 action 接口 和 继承 actionSupport 类各有什么好处呢?
action接口有:
public static final java.lang.String SUCCESS = "ess";
public static final java.lang.String NONE = "none";
public static final java.lang.String ERROR = "error";
public static final java.lang.String INPUT = "input";
public static final java.lang.String LOGIN = "login";
public abstract java.lang.String execute() throws java.lang.Exception;
而actionsupport这个工具类在实现了action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,统能将视图转入input处,必须在配置该Action时配置input属性。
另外,actionsupport还提供了一个getText(String key)方法还实现国际化,该方法从资源文件上获取国际化信息.
这样在自定义标签时可以定义一个变量为new actionsupport对象实现国际化。
请问这是怎么回事,我的action继承了ActionSupport类,但是没有在jsp页面出现必须输的提示信息反而跳转到
应该是 struts.xml文件配置的有问题。
请在action节点中配置/必须输入这个信息。
并在jsp中使用struts错误标签显示出错误信息。
imidc怎么样?imidc彩虹网路,rainbow cloud知名服务器提供商。自营多地区数据中心,是 Apnic RIPE Afrinic Arin 认证服务商。拥有丰富的网路资源。 在2021年 6.18 开启了输血大促销,促销区域包括 香港 台湾 日本 莫斯科 等地促销机型为 E3係,参与促销地区有 香港 日本 台湾 莫斯科 等地, 限量50台,售罄为止,先到先得。所有服务器配置 CPU ...
百纵科技:美国云服务器活动重磅来袭,洛杉矶C3机房 带金盾高防,会员后台可自助管理防火墙,添加黑白名单 CC策略开启低中高.CPU全系列E52680v3 DDR4内存 三星固态盘列阵。另有高防清洗!百纵科技官网:https://www.baizon.cn/联系QQ:3005827206美国洛杉矶 CN2 云服务器CPU内存带宽数据盘防御价格活动活动地址1核1G10M10G10G38/月续费同价点击...
这两天在站长群里看到不少有使用DEDECMS织梦程序的朋友比较着急,因为前两天有看到来自DEDECMS,我们熟悉的织梦程序官方发布的公告,将会在10月25日开始全面商业用途的使用DEDECMS内容管理程序的会采用授权收费模式,如果我们有在个人或者企业商业用途的,需要联系且得到授权才可以使用,否则后面会通过维权的方式。对于这个事情,我们可能有些站长经历过,比如字体、图片的版权。以及有一些国内的CMS...
actionsupport为你推荐
winhttp什么是winhttp.dii自动识别查询快递单号查看单号怎么知道是那个快递公司的Honeypotfeedback 歌词翻译模式识别算法机器学习和模式识别有什么区别?看教材,发现它们的算法都差不多一样啊。。。币众筹众筹是什么意思kjava谁能告诉我KJAVA是什么意思和普通的JAVA程序有什么区别?移动硬盘文件或目录损坏且无法读取急:移动硬盘无法访问,打开提示”文件或目录损坏且无法读取”移动硬盘文件或目录损坏且无法读取移动硬盘提示文件或目录损坏且无法读取!移动硬盘文件或目录损坏且无法读取移动硬盘提示文件或目录损坏且无法读取,怎么修复收费视频微信里的视频通话是怎么收费 ?
免费com域名注册 台湾服务器租用 查询ip地址 godaddy域名解析教程 万网免费域名 hawkhost优惠码 国外服务器网站 免备案cdn suspended 哈喽图床 太原联通测速平台 已备案删除域名 网站木马检测工具 刀片式服务器 qq对话框 卡巴斯基免费试用 电信主机 创建邮箱 中国电信测速器 美国凤凰城 更多