struts_config.xml之plug-in
plug-in设置主要是用于和第三方代码的扩展。现举例说明。
1.假设我们有一个login.jsp文件的表单需要提交到server
<form action="login.do">
name<input type="text" name="name">
password<input type="text" name="password">
birthday<input type="text" name="birthday">
<input type="submit" value="提交">
</form>
2.对应的javabean文件
import java.util.Date;
import org.apache.struts.action.ActionForm;
public class LoginForm extends ActionForm {
private String name;
private String password;
private Date birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
3.对应的Action类
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("success");
}
}
4.struts-config.xml配置
<struts-config>
<form-beans>
<form-bean name="login" type="LoginForm"></form-bean>
</form-beans>
<action-mappings>
<action name="login" path="/login" type="LoginAction" scope="request">
<forward name="success" path="/login_result.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="MessageResources" />
</struts-config>
6.页面显示文件login_result.jsp
${login.name }
${login.password }
${login.birthday }
当你运行的时候进入login_result.jsp会发现jvm会报错。因为jvm会根据输入数据自动转变为javabean中对应的类型,但是仅仅限于基本数据类型。请参考Struts的ActionServlet源码
if (convertNull) {
ConvertUtils.deregister();
ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);
ConvertUtils.register(new BigIntegerConverter(null), BigInteger.class);
ConvertUtils.register(new BooleanConverter(null), Boolean.class);
ConvertUtils.register(new ByteConverter(null), Byte.class);
ConvertUtils.register(new CharacterConverter(null), Character.class);
ConvertUtils.register(new DoubleConverter(null), Double.class);
ConvertUtils.register(new FloatConverter(null), Float.class);
ConvertUtils.register(new IntegerConverter(null), Integer.class);
ConvertUtils.register(new LongConverter(null), Long.class);
ConvertUtils.register(new ShortConverter(null), Short.class);
}
而 birthday是Date类型。struts没有对date类型,不会自动转换,所以我们要扩展ActionServlet,对date类型经行转换
1.建立DateConverter 继承 Converter
public class DateConverter implements Converter {
public Object convert(Class type, Object value) {
// TODO Auto-generated method stub
if (value==null) {
return null;
}
if (value instanceof Date) {
return value;
}
Date d=null;
if (value instanceof String) {
if (!"".equals(value)) {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd");
d = sf.parse((String) value);
}
}
return d;
}
}
2.在web.xml中注册继承的扩展类
注册方法1
1.建立ActionServlet,重写initother方法
public class ActionServlet extends org.apache.struts.action.ActionServlet {
protected void initOther() throws ServletException {
// TODO Auto-generated method stub
super.initOther();
ConvertUtils.register(new DateConverter(), java.util.Date.class);
}
}
2.将<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>修改为<servlet-class>ActionServlet</servlet-class>
注册方法2
1.新建TestActionServlet继承ActionServlet
public class TestActionServlet extends ActionServlet {
protected void initOther() throws ServletException {
// TODO Auto-generated method stub
super.initOther();
ConvertUtils.register(new DateConverter(), java.util.Date.class);
}
}
2.在Struts_config.xml文件中
<plug-in className="TestActionServlet">
</plug-in>
这样程序就能正常运行了。
题外话:
el表达式${login.birthday }可以用jstl标签对其经行格式化<fmt:formatDate value="${login.birthday}"/>
相关推荐
### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...
7. **`<plug-in>`**: 插件元素,允许扩展Struts的功能。插件可以自定义Action的生命周期,提供额外的验证、拦截器等功能。 ### 子元素 1. **`<icon>`**: 提供图形化的表示,可以是小型图标`<small-icon>`(16x...
通过在struts-config.xml中配置plug-in元素,可以指定插件类的全路径,并设置插件初始化时使用的参数。 了解和掌握struts-config.xml中的8个主要配置元素的使用方法,是进行Struts框架应用开发的基础。通过合理配置...
Struts-config.xml 配置文件详解 Struts-config.xml 是 Struts 框架的主要配置文件,用于配置 Struts 应用程序的各种设置。在该文件中,可以配置数据源、Form Bean、Action 和插件等信息。下面是 Struts-config.xml...
- **plug-in**: 子元素,用于添加自定义插件。 6. **<message-resources>**: - **param**: 子元素,用于指定消息资源的参数,如资源文件的名称。 通过理解并熟练配置 `struts-config.xml`,开发者可以精确控制 ...
`plug-in`元素用于配置Struts插件,这些插件可以扩展框架的功能。每个插件可以有自己的配置,包括`class`属性指定插件的主类,以及其他相关属性。 理解并熟练配置`struts-config.xml`对于开发和维护Struts应用至关...
8. `<plug-in>`子元素: 插件配置,允许扩展Struts的行为。可以定义一个或多个插件,每个插件可能包含自定义的监听器、拦截器或过滤器。 此外,还有一些辅助的子元素: - `<icon>`: 提供图标资源,通常用于Web...
<plug-in className="org.apache.struts.tiles.TilesPlugin"> <!-- 其他Tiles配置 --> </plug-in> <plug-in className="org.apache.struts.util.DataSourcePlugIn"> <set-property property="dataSource" ...
* 插件配置(<plug-in />):用于配置struts应用程序的插件,例如文件上传插件。 二、struts-config.xml的子元素 * 图标配置():用于配置struts应用程序的图标,例如小图标和大图标。 * 显示名称配置(<display-...
<plug-in className="org.apache.struts.tiles.TilesPlugin"> ... </plug-in> <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" /> <action-mappings> ... </action-mappings> ...
7. **Plug-in配置**:插件扩展了Struts的功能,例如 strutstags-tiles 插件用于集成Tiles布局框架,`<plug-in>`元素下的`<set-property>`可以设置插件的属性。 8. **Exception处理**:`<global-exceptions>`允许...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/springhiberante.xml"/> </plug-in> ``` **2. 在struts-config.xml...
在 struts-config.xml中写上<plug-in className="org.springframework.web.struts.MyContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /> ...
<plug-in className="org.apache.struts.tiles.TilesPlugin"> <!-- Tiles配置 --> </plug-in> </struts-config> ``` 在实际开发中,还需要创建ActionForm类来对应用户表单,Action类来处理业务逻辑,以及相关的...
8. `<plug-in>`:允许插入插件,扩展Struts的功能。 总的来说,`web.xml`和`struts-config.xml`共同构成了Struts框架的基础配置,使得开发者能够精细地控制请求处理流程、数据验证、异常处理和资源管理。正确配置这...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugin"> <set-property property="contextConfigLocation" value="/WEB-INF/config.xml"/> </plug-in> ... </struts-config> ``` `config....
6. `<plug-in>`:插件配置,可以扩展Struts的功能。 7. `<data-sources>`:数据源配置,连接数据库。 8. `<global-exceptions>`:全局异常处理,可以捕获并处理应用中的异常。 `struts-config.xml`的配置使得开发者...
7. `<plug-in>`:定义插件,扩展Struts的功能。 每个子元素都对应于`org.apache.struts.config`包中的JavaBean类,这些类在应用启动时被实例化,并存储配置信息。例如,`ModuleConfig`类代表整个应用的配置,它包含...
9. **Plug-in架构**:Struts1.x具有强大的插件扩展能力,允许开发者添加自定义的拦截器(Interceptor)、标签库等,以满足项目特殊需求。 10. **预定义的结果类型**:Struts1.x定义了一些预设的Action结果类型,如...