`
sunbin
  • 浏览: 354324 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts_config.xml之plug-in

阅读更多

 

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文件配置小结

    ### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...

    struts-config.xml

    7. **`&lt;plug-in&gt;`**: 插件元素,允许扩展Struts的功能。插件可以自定义Action的生命周期,提供额外的验证、拦截器等功能。 ### 子元素 1. **`&lt;icon&gt;`**: 提供图形化的表示,可以是小型图标`&lt;small-icon&gt;`(16x...

    Struts-config.xml配置详解

    通过在struts-config.xml中配置plug-in元素,可以指定插件类的全路径,并设置插件初始化时使用的参数。 了解和掌握struts-config.xml中的8个主要配置元素的使用方法,是进行Struts框架应用开发的基础。通过合理配置...

    struts-config.xml配置文件详解

    Struts-config.xml 配置文件详解 Struts-config.xml 是 Struts 框架的主要配置文件,用于配置 Struts 应用程序的各种设置。在该文件中,可以配置数据源、Form Bean、Action 和插件等信息。下面是 Struts-config.xml...

    配置struts--config.xml详解

    - **plug-in**: 子元素,用于添加自定义插件。 6. **&lt;message-resources&gt;**: - **param**: 子元素,用于指定消息资源的参数,如资源文件的名称。 通过理解并熟练配置 `struts-config.xml`,开发者可以精确控制 ...

    struts-config.xml 详解

    `plug-in`元素用于配置Struts插件,这些插件可以扩展框架的功能。每个插件可以有自己的配置,包括`class`属性指定插件的主类,以及其他相关属性。 理解并熟练配置`struts-config.xml`对于开发和维护Struts应用至关...

    Struts-config.xml 配置详解.doc

    8. `&lt;plug-in&gt;`子元素: 插件配置,允许扩展Struts的行为。可以定义一个或多个插件,每个插件可能包含自定义的监听器、拦截器或过滤器。 此外,还有一些辅助的子元素: - `&lt;icon&gt;`: 提供图标资源,通常用于Web...

    在struts-config.xml中配置数据源

    &lt;plug-in className="org.apache.struts.tiles.TilesPlugin"&gt; &lt;!-- 其他Tiles配置 --&gt; &lt;/plug-in&gt; &lt;plug-in className="org.apache.struts.util.DataSourcePlugIn"&gt; &lt;set-property property="dataSource" ...

    struts-config详解

    * 插件配置(&lt;plug-in /&gt;):用于配置struts应用程序的插件,例如文件上传插件。 二、struts-config.xml的子元素 * 图标配置():用于配置struts应用程序的图标,例如小图标和大图标。 * 显示名称配置(&lt;display-...

    commons-dbcp-1.2.2.jar &commons-pool-1.3.jar

    &lt;plug-in className="org.apache.struts.tiles.TilesPlugin"&gt; ... &lt;/plug-in&gt; &lt;controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" /&gt; &lt;action-mappings&gt; ... &lt;/action-mappings&gt; ...

    Struts1.3和config配置详解

    7. **Plug-in配置**:插件扩展了Struts的功能,例如 strutstags-tiles 插件用于集成Tiles布局框架,`&lt;plug-in&gt;`元素下的`&lt;set-property&gt;`可以设置插件的属性。 8. **Exception处理**:`&lt;global-exceptions&gt;`允许...

    struts spring hibernate整合

    &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"&gt; &lt;set-property property="contextConfigLocation" value="/WEB-INF/springhiberante.xml"/&gt; &lt;/plug-in&gt; ``` **2. 在struts-config.xml...

    MyContextLoaderPlugIn.jar

    在 struts-config.xml中写上&lt;plug-in className="org.springframework.web.struts.MyContextLoaderPlugIn"&gt; &lt;set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /&gt; ...

    struts1教程.doc

    &lt;plug-in className="org.apache.struts.tiles.TilesPlugin"&gt; &lt;!-- Tiles配置 --&gt; &lt;/plug-in&gt; &lt;/struts-config&gt; ``` 在实际开发中,还需要创建ActionForm类来对应用户表单,Action类来处理业务逻辑,以及相关的...

    struts 配置

    8. `&lt;plug-in&gt;`:允许插入插件,扩展Struts的功能。 总的来说,`web.xml`和`struts-config.xml`共同构成了Struts框架的基础配置,使得开发者能够精细地控制请求处理流程、数据验证、异常处理和资源管理。正确配置这...

    整合Spring与Struts的几种方法

    &lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugin"&gt; &lt;set-property property="contextConfigLocation" value="/WEB-INF/config.xml"/&gt; &lt;/plug-in&gt; ... &lt;/struts-config&gt; ``` `config....

    Struts中配置文件的详细讲解

    6. `&lt;plug-in&gt;`:插件配置,可以扩展Struts的功能。 7. `&lt;data-sources&gt;`:数据源配置,连接数据库。 8. `&lt;global-exceptions&gt;`:全局异常处理,可以捕获并处理应用中的异常。 `struts-config.xml`的配置使得开发者...

    Struts配置文件详解

    7. `&lt;plug-in&gt;`:定义插件,扩展Struts的功能。 每个子元素都对应于`org.apache.struts.config`包中的JavaBean类,这些类在应用启动时被实例化,并存储配置信息。例如,`ModuleConfig`类代表整个应用的配置,它包含...

    Struts1.x常用的开发包,需要学习struts1.x朋友可以下载

    9. **Plug-in架构**:Struts1.x具有强大的插件扩展能力,允许开发者添加自定义的拦截器(Interceptor)、标签库等,以满足项目特殊需求。 10. **预定义的结果类型**:Struts1.x定义了一些预设的Action结果类型,如...

Global site tag (gtag.js) - Google Analytics