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

\t\tstruts2 学习总结(整合fck,解决jsp不支持EL表达式)

2014年07月15日 ⁄ 综合 ⁄ 共 6536字 ⁄ 字号 评论关闭

要整合struts2和fck首先得知道fck怎么单独使用的,这里不再讲了。网上有很多文章。

1、首先在web.xml里面配置struts2内容和fck内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<!-- struts2 配置了一个过滤器来执行分发功能 -->
<filter>
   <filter-name>struts2</filter-name>
   <filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher
   </filter-class>
</filter>
<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>*.js</url-pattern>
</filter-mapping>
<filter>
   <filter-name>clean-struts</filter-name>
   <filter-class>
    org.apache.struts2.dispatcher.ActionContextCleanUp
   </filter-class>
</filter>
<filter-mapping>
   <filter-name>clean-struts</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- fck 编辑器配置 -->
<servlet>
   <servlet-name>Connector</servlet-name>
   <servlet-class>
    com.fredck.FCKeditor.connector.ConnectorServlet
   </servlet-class>
   <init-param>
    <param-name>baseDir</param-name>
    <param-value>/UserFiles/</param-value><!-- 此为文件浏览路径 -->
   </init-param>
   <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
   </init-param>
   <load-on-startup>0</load-on-startup>
</servlet>
<servlet>
   <servlet-name>SimpleUploader</servlet-name>
   <servlet-class>
    com.fredck.FCKeditor.uploader.SimpleUploaderServlet
   </servlet-class>
   <init-param>
    <param-name>baseDir</param-name>
    <param-value>/UserFiles/</param-value><!-- 此为文件上传路径,需要在WebRoot 目录下新建 UserFiles 文件夹,在UserFiles文件夹下建立Image、Flash和File文件夹用来保存用户上传的各类文件 -->
   </init-param>
   <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
   </init-param>
   <init-param>
    <param-name>enabled</param-name>
    <param-value>true</param-value><!-- 设置为true开启上传功能-->
   </init-param>
   <init-param>
    <param-name>AllowedExtensionsFile</param-name><!-- 可以上传的文件类型 -->
    <param-value></param-value>
   </init-param>
   <init-param>
    <param-name>DeniedExtensionsFile</param-name><!-- 不可以上传的文件类型 -->
    <param-value>
     php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi
    </param-value>
   </init-param>
   <init-param>
    <param-name>AllowedExtensionsImage</param-name><!-- 可以上传的图片类型 -->
    <param-value>jpg|gif|jpeg|png|bmp</param-value>
   </init-param>
   <init-param>
    <param-name>DeniedExtensionsImage</param-name><!-- 不可以上传的图片类型 -->
    <param-value></param-value>
   </init-param>
   <init-param>
    <param-name>AllowedExtensionsFlash</param-name><!-- 可以上传的flash类型 -->
    <param-value>swf|fla</param-value>
   </init-param>
   <init-param>
    <param-name>DeniedExtensionsFlash</param-name><!-- 不可以上传的flash类型 -->
    <param-value></param-value>
   </init-param>
   <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
   <servlet-name>Connector</servlet-name><!-- 此处注意路径问题,因为我们刚才在WebRoot下建立了FCKeditor文件夹所在要加上红字部分 -->
   <url-pattern>
    /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector
   </url-pattern>
</servlet-mapping>
<servlet-mapping>
   <servlet-name>SimpleUploader</servlet-name>
   <url-pattern>
    /fckeditor/editor/filemanager/upload/simpleuploader
   </url-pattern>
</servlet-mapping>
<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

2、struts.xml

<!DOCTYPE struts PUBLIC
"-//Apache SoftWare Foundation//DTD Struts Configurtionv 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
<struts>
   <package name = "struts2" extends="struts-default">
    
      <!-- 采用 struts2 通配符方法调用action里面对应的方法 -->
   <action name="*" method="{1}">
    <result name="contest">/contest.jsp</result>
    <result name="page">/result.jsp</result>
    <result name="fail">/fail.jsp</result>
    <result name="error">/error.jsp</result>
    <result name="result">/result.jsp</result>   
   </action>
  
  
   <!-- 采用最笨的方法配置多个action 的name属性,在一个action里面配置多个方法;
  

   <action name="contest" method="contest">
    <result name="contest">/contest.jsp</result>
    <result name="fail">/fail.jsp</result>
    <result name="error">/error.jsp</result>
   </action>
  
   -->  
</package>
</struts>

action 类

/**
*
*/
package com.struts2.action;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.struts2.domain.TbUser;
import com.struts2.domain.TbUserDAO;
/**
* @author meemei
*
*/

public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = -6081534009500680546L;

// fck新闻内容 ;
private String contest ;
public HttpServletRequest getRequest() {
   return request;
}
public void setRequest(HttpServletRequest request) {
   this.request = request;
}

public String getContest() {
   return contest;
}
public void setContest(String contest) {
   this.contest = contest;
}

   /**fck 里面提交内容;
* @return
*/
public String contest(){
   System.out.print(contest);
   request = ServletActionContext.getRequest();
   request.setAttribute("contest", contest);
   return "contest" ;
}
}

在网上找了好多讲struts2里面如何解决不支持el表示和jstl的方法,有的说是web.xml声明处应该声明为2.3以前的,还有的说要显示在页面头部声明支持el表达式,都不行,最后自己发现这样配置一切ok。

在jsp2.0以后默认是不支持EL表达式和jstl标签的话,需要在

里面加入c.tld文件。

constext.jsp编辑页面

<%@ page pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<html>
<head>
   <title>提交结果</title>
   <style type="text/css">
.center {
text-align: center;
}

.12 {
font-size: 12px;
font-weight: bold;
}
</style>
</head>

<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
<body>

   <form action="contest.action" method="post"
    enctype="multipart/form-data">
    <table width="90%" border="0">
     <tr>
      <td>
       <font style="color: red;" 欢迎: <s:property
         value="#session.result" /> </font>
      </td>
     </tr>
     <tr>
      <td>
       <h3 align="center" style="color: blue">
        新闻发布系统
        <a href="upload.jsp" style="font-size: 12px;">struts2上传文件</a>
       </h3>

      </td>
     </tr>
     <tr>
      <td height="25">
       <textarea name="contest" id="contest"
        style="width: 100%; height: 20px;"></textarea>
       <script type="text/javascript">
       var oFCKeditor = new FCKeditor( 'contest' ) ;
       oFCKeditor.BasePath = 'fckeditor/' ;
       oFCKeditor.ToolbarSet = 'Default' ;
       oFCKeditor.Width = '100%' ;
       oFCKeditor.Height = '400' ;
       oFCKeditor.Value = '' ;
       oFCKeditor.ReplaceTextarea();
       //oFCKeditor.Create() ;
      </script>

      </td>

     </tr>
     <tr>
      <td align="center">
       <input type="submit" name="Submit" value="提交" />
       <input type="reset">
      </td>

     </tr>
    </table>
   </form>
</body>
</html>

抱歉!评论已关闭.