现在的位置: 首页 > 综合 > 正文

Studs MVC Framework—–PHP的Struts1.X实现

2013年09月15日 ⁄ 综合 ⁄ 共 7474字 ⁄ 字号 评论关闭

Jakarta Struts结构移植过来的PHP开发框架,使用面向对象的开发结构和API,模拟了一个HTTP Servlet容器和使用了PHP服务页面引擎技术。

下载地址:http://mojavelinux.com/projects/studs/

文件结构如下:

如上图,WEB-INF中的文件都是Studs框架的核心文件(尤其是lib和tld下的文件),其中:

1.messages.properties文件:

welcome.title=Studs :: Welcome
welcome.heading
=Welcome to Studs!
welcome.message
=The application has been successfully installed!

pageviews.message
=This page has been viewed <strong>{0}</strong> times.

2.struts-config.xml文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"
>
<!--
     This is a basic Studs/Struts configuration file with an example
     welcome action/page and other commented sample elements.
-->
<struts-config>

    
<!-- example configuration of a database connection
    <data-sources>
        <data-source type="horizon.sql.BasicDataSource">
            <set-property
                property="description"
                value="Primary data source for localhost database"/>
            <set-property
                property="driverClassName"
                value="horizon.sql.drivers.MySQLDriver"/>
            <set-property
                property="username"
                value="user"/>
            <set-property
                property="password"
                value="secret"/>
            <set-property
                property="url"
                value="mysql://localhost/dbname"/>
        </data-source>
    </data-sources>
    
-->

    
<form-beans>
        
<!-- sample form bean descriptor for an ActionForm
        <form-bean
            name="inputForm"
            type="app.InputForm"/>
        
-->
    
</form-beans>

    
<global-exceptions>
        
<!-- sample exception handler
        <exception
            key="expired.password"
            type="app.ExpiredPasswordException"
            path="/changePassword.jsp"/>
        
-->
    
</global-exceptions>

    
<global-forwards>
        
<!-- Default forward to "welcome" action -->
        
<forward name="welcome" path="/welcome.do"/>
    
</global-forwards>

    
<action-mappings>
        
<!-- Default "welcome" action -->
        
<action path="/welcome" forward="/pages/welcome.psp"/>
        
<action path="/example" forward="/pages/example.psp"/>

        
<!-- sample input and input submit actions

        <action
            path="/Input"
            type="org.apache.struts.actions.ForwardAction"
            parameter="/pages/Input.jsp"/>

        <action
            path="/InputSubmit"
            type="app.InputAction"
            name="inputForm"
            scope="request"
            validate="true"
            input="/pages/Input.jsp"/>

            <action
                path="/edit*"
                type="app.Edit{1}Action"
                name="inputForm"
                scope="request"
                validate="true"
                input="/pages/Edit{1}.jsp"/>

            
-->
    
</action-mappings>

    
<controller locale="false" inputForward="true"/>

    
<message-resources parameter="/WEB-INF/messages.properties"/>

</struts-config>

3.web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

    
<display-name>Studs Basic Application</display-name>
    
<description>A bare-bones foundation for creating a web application based on the Studs MVC Framework+</description>
    
<context-param>
        
<!-- if controlAllResources is set, all files should be handled by the stratus
             container, including all non-php/html files 
-->
        
<param-name>controlAllResources</param-name>
        
<param-value>false</param-value>
    
</context-param>

    
<!-- Servlet Definitions -->
    
<servlet>
        
<servlet-name>default</servlet-name>
        
<servlet-class>stratus.servlets.DefaultServlet</servlet-class>
        
<init-param>
            
<param-name>listings</param-name>
            
<param-value>true</param-value>
        
</init-param>
        
<load-on-startup>1</load-on-startup>
    
</servlet>
    
<servlet>
        
<servlet-name>phase</servlet-name>
        
<servlet-class>phase.servlet.PhaseServlet</servlet-class>
        
<init-param>
            
<param-name>scratchdir</param-name>
            
<param-value>/WEB-INF/work</param-value>
        
</init-param>
        
<init-param>
            
<param-name>tldresourcedir</param-name>
            
<param-value>/WEB-INF/tld</param-value>
        
</init-param>
        
<init-param>
            
<param-name>ignoreEL</param-name>
            
<param-value>false</param-value>
        
</init-param>
        
<load-on-startup>2</load-on-startup>
    
</servlet>
    
<servlet>
        
<servlet-name>action</servlet-name>
        
<servlet-class>studs.action.ActionServlet</servlet-class>
        
<init-param>
            
<param-name>config</param-name>
            
<param-value>/WEB-INF/struts-config.xml</param-value>
        
</init-param>
        
<init-param>
            
<param-name>validating</param-name>
            
<param-value>true</param-value>
        
</init-param>
        
<load-on-startup>3</load-on-startup>
    
</servlet>

    
<!-- Servlet Mappings -->
    
<servlet-mapping>
        
<servlet-name>default</servlet-name>
        
<url-pattern>/</url-pattern>
    
</servlet-mapping>
    
<servlet-mapping>
        
<servlet-name>phase</servlet-name>
        
<url-pattern>*.psp</url-pattern>
    
</servlet-mapping>
    
<servlet-mapping>
        
<servlet-name>action</servlet-name>
        
<url-pattern>*.do</url-pattern>
    
</servlet-mapping>

    
<!-- Mime Type Mappings -->
    
<mime-mapping>
        
<extension>html</extension>
        
<mime-type>text/html</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>css</extension>
        
<mime-type>text/css</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>js</extension>
        
<mime-type>text/javascript</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>png</extension>
        
<mime-type>image/png</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>jpg</extension>
        
<mime-type>image/jpeg</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>jpeg</extension>
        
<mime-type>image/jpeg</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>gif</extension>
        
<mime-type>image/gif</mime-type>
    
</mime-mapping>

    
<!-- Default Welcome File List -->
    
<welcome-file-list>
        
<welcome-file>index.psp</welcome-file>
    
</welcome-file-list>

</web-app>

4.文件build.xml:

<?xml version="1.0"?>
<project name="Studs Basic" basedir="../.." default="package">
    
<property file="../../build.properties" />

    
<target name="package" depends="prepare">
        
<mkdir dir="../../${release.dir}/${project.release.version}"/>
        
<tar destfile="../../${release.dir}/${project.release.version}/studs-basic-${project.release.version}.tar.gz" compression="gzip">
            
<tarfileset dir="." prefix="studs-basic" defaultexcludes="yes">
                
<exclude name="classes/build.xml"/>
                
<exclude name="**/TODO"/>
                
<exclude name="**/NOTES"/>
            
</tarfileset>
        
</tar>
    
</target>

    
<target name="clean">
        
<!-- make sure to break symlinks -->
        
<symlink action="delete" link="${basedir}/WEB-INF/lib" failonerror="no"/>
        
<symlink action="delete" link="${basedir}/WEB-INF/tld" failonerror="no"/>

        
<delete includeemptydirs="yes" failonerror="no">
            
<fileset dir="WEB-INF/work">
                
<include name="**"/>
            
</fileset>
            

抱歉!评论已关闭.