对错误消息的支持:
在WebWork 2中, 有两类错误消息: 字段错误消息和活动错误消息. 字段错误消息代表某一控件的问题并显示在控件中. 许多标签支持显示这种消息. 另一方面活动错误消息代表活动执行的问题. 在Web应用中很多事物会导致错误, 尤其是在依赖于外部资源的应用中如数据库, 远程Web服务, 或其他在活动执行期间可能不可用的资源. 能否优雅的处理错误并向用户提供有用的消息通常是用户体验好与坏的区别.
当这种错误发生时, 把消息从表单控件中分离出来单独显示更为合适. 下例中, 我们将创建一个可以用列表现活动错误消息的定制组件. 该组件可以用于全部显示这类错误消息的表单中.
下面的活动将处理网站上的广告: 免费的电子证书. 它将尝试发送证书邮件, 但会抛出异常.
活动类:
package example;
import com.opensymphony.xwork.ActionSupport;
public class AddUser extends ActionSupport {
private String fullname;
private String email;
public String execute() throws Exception {
// we are ignoring field validation in this example
try {
MailUtil.sendCertificate(email, fullname);
} catch (Exception ex) {
// there was a problem sending the email
// in a real application, we would also
// log the exception
addActionError("We are experiencing a technical problem and have contacted our support staff. " +
"Please try again later.");
}
if (hasErrors()) {
return ERROR;
} else {
return SUCCESS;
}
}
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Jsp页面:
<%@ taglib uri="webwork" prefix="ui" %>
<html>
<head><title>custom component example</title></head>
<!-- don't forget this -->
<link rel ="stylesheet" type="text/css" href="/webwork-example/template/xhtml/styles.css" title="Style">
<body>
<ui:form action="AddUser.action" method="POST">
<table>
<ui:component template="action-errors.vm" />
<ui:textfield label="Full Name" name="fullname" />
<ui:textfield label="Email" name="email" />
<ui:submit name="submit" value="Send me a free E-Certificate!" />
</table>
</ui:form>
</body>
</html>
HTML输出(提交前):
<html>
<head><title>custom component example</title></head>
<link rel ="stylesheet" type="text/css" href="/webwork-example/template/xhtml/styles.css" title="Style">
<body>
<form action="AddUser.action" method="POST" />
<table>
<tr>
<td align="right" valign="top"><span class="label">Full Name:</span></td>
<td>
<input type="text" name="fullname" value="" />
</td>
</tr>
<tr>
<td align="right" valign="top"><span class="label">Email:</span></td>
<td>
<input type="text" name="email" value="" />
</td>
</tr>
<tr>
<td colspan="2">
<div align="right">
<input type="submit" name="submit" value="Send me a free E-Certificate!"/>
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
下面的模版将循环全部活动错误并显示在列表中.
模版(action-errors.vm)
#set ($actionErrors = $stack.findValue("actionErrors"))
#if ($actionErrors)
<tr>
<td colspan="2">
<span class="errorMessage">The following errors occurred:</span>
<ul>
#foreach ($actionError in $actionErrors)
<li><span class="errorMessage">$actionError</span></li>
#end
</ul>
</td>
</tr>
#end
HTML输出(提交之后):
<html>
<head><title>custom component example</title></head>
<link rel ="stylesheet" type="text/css" href="/webwork-example/template/xhtml/styles.css" title="Style">
<body>
<form action="AddUser.action" method="POST" />
<table>
<tr>
<td colspan="2">
<span class="errorMessage">The following errors occurred:</span>
<ul>
<li class="errorMessage">
We are experiencing a technical problem and have contacted our
support staff. Please try again later.
</li>
</ul>
</td>
</tr>
<tr>
<td align="right" valign="top"><span class="label">Full Name:</span></td>
<td>
<input type="text" name="fullname" value="Sample User" />
</td>
</tr>
<tr>
<td align="right" valign="top"><span class="label">Email:</span></td>
<td>
<input type="text" name="email" value="user@example.com" />
</td>
</tr>
<tr>
<td colspan="2">
<div align="right">
<input type="submit" name="submit" value="Send me a free E-Certificate!"/>
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
分享到:
相关推荐
4. **异常处理**:WebWork 提供了优雅的异常处理机制,可以将程序中的异常转化为用户友好的错误页面,同时提供了丰富的错误信息供开发者调试。 5. **视图分离**:WebWork 支持多种视图技术,如JSP、FreeMarker、...
5. **国际化支持**:WebWork1.4内置了对多语言的支持,通过资源包可以轻松实现应用程序的国际化。 6. **视图渲染**:WebWork使用JSP、FreeMarker或其他模板引擎作为视图技术,通过ActionSupport类和结果类型来决定...
6. **异常处理**:WebWork有一个强大的异常处理机制,可以将业务逻辑中的异常转换为用户友好的错误消息。相关JAR文件可能会包含这部分功能。 7. **国际化和本地化**:WebWork支持多语言环境,`struts2-i18n.jar`等...
通过对WebWork docs 2 的深入学习,开发者能够熟练掌握WebWork框架,从而更高效地构建企业级Java Web应用。这个文档集合是一个宝贵的资源,无论你是初学者还是经验丰富的开发者,都能从中获益。
6. **国际化与本地化(I18N/L10N)**:WebWork支持多语言环境,方便开发多语言的应用。 7. **与Spring的集成**:WebWork可以与Spring框架无缝集成,利用Spring的依赖注入和管理服务,进一步提升开发效率。 8. **...
4. AJAX支持:WebWork2.0内建了对AJAX的支持,方便创建富客户端应用程序。 5. 国际化与本地化:WebWork2.0提供简单易用的国际化和本地化功能,方便不同语言环境的应用开发。 三、WebWork2.0配置 WebWork2.0的配置...
8. **异常处理(Exception Handling)**:Webwork2提供了优雅的异常处理机制,允许开发者自定义错误页面和处理策略,确保应用程序在出现异常时仍能提供用户友好的反馈。 9. **国际化(Internationalization)**:...
总的来说,Spring 和 WebWork 的集成是通过共享同一个上下文和依赖注入机制来实现的,这使得开发者能够充分利用 Spring 的优势,同时保留 WebWork 的动态控制流程和用户友好的错误处理。这种集成方式在过去的 Java ...
这个“webwork学习资料”压缩包包含了一本中文文档,非常适合对WebWork感兴趣的初学者进行深入学习。 在Web开发中,MVC模式是一种常用的设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和...
4. AJAX支持:WebWork提供了与AJAX集成的能力,可以创建富客户端应用。 5. 动态Action和结果:开发者可以根据不同的条件动态选择执行哪个Action或返回哪个结果。 四、学习资源 "webWork学习文档"包含了WebWork的...
WebWork 2.1.7虽然已不再活跃开发,但它的一些设计理念和机制对理解现代Web框架如Spring MVC、Struts 2等有很大帮助。学习WebWork能让你深入理解MVC模式,了解如何通过拦截器进行业务逻辑封装,以及如何利用OGNL进行...
9. **国际化与本地化(i18n & l10n)**:WebWork2支持多语言环境,通过资源包(Properties文件)实现文本消息的国际化,使得应用程序能适应不同的地区和语言。 10. **jar包**:压缩包中的jar文件包含了WebWork2运行...
WebWork提供了许多先进的特性,如动作拦截器、类型转换、强大的异常处理机制以及对AJAX的支持,这些都使得开发更高效、更易于维护。 在WebWork框架中,`Action`是核心组件,它负责处理用户请求并执行业务逻辑。每个...
8. **异常处理**:WebWork2的异常处理机制允许开发者定义全局和特定Action的异常处理器,从而统一处理可能出现的运行时错误。 9. **配置管理**:WebWork2的配置文件采用XML格式,可灵活配置Action、Interceptor、...
9. **ActionSupport Class**:这是WebWork提供的一个基类,包含了一些常用的方法,如验证、消息管理等,开发者通常会继承它来自定义自己的Action。 10. **ActionContext**:ActionContext是WebWork中的一个重要组件...
本中文帮助文档旨在为使用WebWork框架的开发者提供详尽的指导和支持。 在WebWork框架中,模型(Model)负责处理业务逻辑,视图(View)负责展示数据,控制器(Controller)则协调模型和视图,处理用户的请求。这种...
8. **异常处理**:WebWork提供了强大的异常处理机制,允许开发者自定义错误页面和异常策略,以优雅地处理程序中的错误。 在压缩包中的8个例子可能涵盖了WebWork的基本用法,例如: - **HelloWorld**:最基础的示例...
3. 错误与异常处理:WebWork提供了优雅的错误处理机制,可以定制错误页面和异常处理策略。 通过深入学习"WebWork 2.2.4开发指南",开发者能够熟练掌握WebWork的使用,从而提升开发效率,构建出高效、可维护的Web...