一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Studs MVC Framework-----PHP的Struts1.X实现

时间:2008-04-24 编辑:简简单单 来源:一聚教程网

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 {0} 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"
>

<struts-config>

    


    
<form-beans>
        

    
form-beans>

    
<global-exceptions>
        

    
global-exceptions>

    
<global-forwards>
        

        
<forward name="welcome" path="/welcome.do"/>
    
global-forwards>

    
<action-mappings>
        

        
<action path="/welcome" forward="/pages/welcome.psp"/>
        
<action path="/example" forward="/pages/example.psp"/>

        

    
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 Applicationdisplay-name>
    
<description>A bare-bones foundation for creating a web application based on the Studs MVC Framework+description>
    
<context-param>
        

        
<param-name>controlAllResourcesparam-name>
        
<param-value>falseparam-value>
    
context-param>

    

    
<servlet>
        
<servlet-name>defaultservlet-name>
        
<servlet-class>stratus.servlets.DefaultServletservlet-class>
        
<init-param>
            
<param-name>listingsparam-name>
            
<param-value>trueparam-value>
        
init-param>
        
<load-on-startup>1load-on-startup>
    
servlet>
    
<servlet>
        
<servlet-name>phaseservlet-name>
        
<servlet-class>phase.servlet.PhaseServletservlet-class>
        
<init-param>
            
<param-name>scratchdirparam-name>
            
<param-value>/WEB-INF/workparam-value>
        
init-param>
        
<init-param>
            
<param-name>tldresourcedirparam-name>
            
<param-value>/WEB-INF/tldparam-value>
        
init-param>
        
<init-param>
            
<param-name>ignoreELparam-name>
            
<param-value>falseparam-value>
        
init-param>
        
<load-on-startup>2load-on-startup>
    
servlet>
    
<servlet>
        
<servlet-name>actionservlet-name>
        
<servlet-class>studs.action.ActionServletservlet-class>
        
<init-param>
            
<param-name>configparam-name>
            
<param-value>/WEB-INF/struts-config.xmlparam-value>
        
init-param>
        
<init-param>
            
<param-name>validatingparam-name>
            
<param-value>trueparam-value>
        
init-param>
        
<load-on-startup>3load-on-startup>
    
servlet>

    

    
<servlet-mapping>
        
<servlet-name>defaultservlet-name>
        
<url-pattern>/url-pattern>
    
servlet-mapping>
    
<servlet-mapping>
        
<servlet-name>phaseservlet-name>
        
<url-pattern>*.pspurl-pattern>
    
servlet-mapping>
    
<servlet-mapping>
        
<servlet-name>actionservlet-name>
        
<url-pattern>*.dourl-pattern>
    
servlet-mapping>

    

    
<mime-mapping>
        
<extension>htmlextension>
        
<mime-type>text/htmlmime-type>
    
mime-mapping>
    
<mime-mapping>
        
<extension>cssextension>
        
<mime-type>text/cssmime-type>
    
mime-mapping>
    
<mime-mapping>
        
<extension>jsextension>
        
<mime-type>text/javascriptmime-type>
    
mime-mapping>
    
<mime-mapping>
        
<extension>pngextension>
        
<mime-type>image/pngmime-type>
    
mime-mapping>
    
<mime-mapping>
        
<extension>jpgextension>
        
<mime-type>image/jpegmime-type>
    
mime-mapping>
    
<mime-mapping>
        
<extension>jpegextension>
        
<mime-type>image/jpegmime-type>
    
mime-mapping>
    
<mime-mapping>
        
<extension>gifextension>
        
<mime-type>image/gifmime-type>
    
mime-mapping>

    

    
<welcome-file-list>
        
<welcome-file>index.pspwelcome-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">
        

        
<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>
            
<fileset dir="WEB-INF/lib">
                
<include name="**"/>
            
fileset>
            
<fileset dir="WEB-INF/tld">
                
<include name="**"/>
            
fileset>
        
delete>
    
target>

    
<target name="prepare" depends="clean">
        

        
<mkdir dir="WEB-INF/work"/>
        
<chmod dir="WEB-INF/work" perm="0777" type="dir"/>
        

        
<mkdir dir="WEB-INF/lib"/>
        
<copy todir="WEB-INF/lib">
            
<fileset dir="../../src">
                
<include name="**"/>
            
fileset>
        
copy>
        

        
<mkdir dir="WEB-INF/tld"/>
        
<copy todir="WEB-INF/tld">
            
<fileset dir="../../conf/tld">
                
<include name="*.tld"/>
            
fileset>
        
copy>
        

        
<copy todir=".">
            
<fileset dir="../../conf">
                
<include name="index.php"/>
                
<include name=".htaccess"/>
            
fileset>
        
copy>
    
target>
project>

5.logging.properties文件:



== Setup log appenders ==
#logging.rootLogger
=DEBUG, file
#logging.appender.file
=horizon.util.logging.FileLogAppender
#logging.appender.file.file
=/tmp/studs-basic.log
== Specific logging per category ==
#logging.logger.
[partial package or classname]=DEBUG

其他文件基本上都可以在框架源代码中找到。

页面文件如下:

1.index.php:



php
error_reporting(E_ALL);
ini_set(''include_path'', ''WEB-INF/lib'' . (DIRECTORY_SEPARATOR == ''/'' ? '':'' : '';''. ''WEB-INF/classes'');
umask(0002);

require_once ''horizon/init.php'';

import(
''stratus.connector.HttpProcessor'');
import(
''stratus.config.ContextConfig'');

$config = & new ContextConfig(dirname(__FILE__));
$processor = & new HttpProcessor($config->getContext());
$processor->run();
?>

2.index.psp:



<%

热门栏目