周六在家,通过《Struts + Spring + Hibernate框架技术+项目实战》这本书来一窥SSH框架的内涵.
首先接触的自然是Struts框架.
说说我对Struts的浅薄了解,总体上Struts与MVC模式的JAVABEAN+SERVLET+JSP的设计思想是一样的,达到M V C的解耦,但是有其更多的优势,其中一点就是灵活.
1. Servlet中需要以reponse.redirect("") 进行逻辑跳转, Struts中以action的返回字符串+struts.xml配置达到灵活跳转的目的:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="login" class="com.login.LoginAction">
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>
优势: 在代码中不出现具体的逻辑实现,有利于修改.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
终于是配置成功最简单的Struts应用啦.
3. 删除项目之后重新建立部署失败的问题:
需要删除 MyEclipse workSpace下面的
E:\JAVA_Project\.metadata\.plugins\org.eclipse.core.runtime\.settings\com.genuitec.eclipse.ast.deploy.core.prefs
4. 可以在Struts中配置action的具体方法,在
<action name="login" class="com.login.LoginAction">中增加
<action name="login" class="com.login.LoginAction" method = "xxx">
则默认以xxx方法作为action的处理方法
好开心呀~~
5. 为什么struts标签应用不到action中的属性
因为属性并没有被设置为public 或者 属性没有响应的getXXX方法.