⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filters.jsp

📁 Struts+Spring+Hibernate开发的BBS,功能很强大很完善
💻 JSP
📖 第 1 页 / 共 2 页
字号:
<%
/**
 *	$RCSfile: filters.jsp,v $
 *	$Revision: 1.1.1.1 $
 *	$Date: 2002/09/09 13:50:26 $
 */
%>

<%@ page import="java.beans.*,
                 java.util.*,
                 com.jivesoftware.util.*,
                 com.jivesoftware.forum.*,
                 com.jivesoftware.forum.util.*"
    errorPage="error.jsp"
%>

<%@ include file="include/global.jsp" %>

<%! // Global variables/methods for this page
    private boolean isInstalledFilter(FilterManager filterManager,
            ForumMessageFilter filter)
    {
        try {
            int filterCount = filterManager.getFilterCount();
            if (filter == null) {
                return false;
            }
            if (filterCount < 1) {
                return false;
            }
            String filterClassname = filter.getClass().getName();
            for (int i=0; i<filterCount; i++) {
                ForumMessageFilter installedFilter = filterManager.getFilter(i);
                if (filterClassname.equals(installedFilter.getClass().getName())) {
                    return true;
                }
            }
        } catch (Exception e) {}
        return false;
    }
    
    private String getHTML(ForumMessageFilter filter, PropertyDescriptor descriptor)
    {
        // HTML of the customizer for this property
        StringBuffer html = new StringBuffer(50);
        // Get the name of the property (this becomes the name of the form element)
        String propName = descriptor.getName();
        // Get the current value of the property
        Object propValue = null;
        try {
            propValue = descriptor.getReadMethod().invoke(filter,null);
        }
        catch (Exception e) {e.printStackTrace();}
        
        // Get the classname of this property
        String className = descriptor.getPropertyType().getName();
        
        // HTML form elements for number values (rendered as small textfields)
        if ("int".equals(className)
            || "double".equals(className)
            || "long".equals(className))
        {
            html.append("<input type=\"text\" name=\"").append(propName).append("\" size=\"6\" maxlength=\"10\"");
            if (propValue != null) {
                html.append(" value=\"").append(propValue.toString()).append("\"");
            }
            html.append(">");
        }
        // HTML form elements for boolean values (rendered as Yes/No radio buttons)
        else if ("boolean".equals(className)) {
            boolean value = false;
            if ("true".equals(propValue.toString())) {
                value = true;
            }
            html.append("<input type=\"radio\" name=\"").append(propName).append("\" id=\"rb").append(propName).append("1\" ");
            html.append("value=\"true\"");
            html.append((value)?" checked":"");
            html.append("> <label for=\"rb").append(propName).append("1\">Yes</label> ");
            html.append("<input type=\"radio\" name=\"").append(propName).append("\" id=\"rb").append(propName).append("2\" ");
            html.append("value=\"false\"");
            html.append((!value)?" checked":"");
            html.append("> <label for=\"rb").append(propName).append("2\">No</label> ");
        }
        // HTML elements for a String (rendered as a wide textfield)
        else if ("java.lang.String".equals(className)) {
            if (propName.toLowerCase().equals("password")) {
                html.append("<input type=\"password\"");
            }
            else {
                html.append("<input type=\"text\"");
            }
            html.append(" name=\"").append(propName).append("\" size=\"30\" maxlength=\"150\"");
            if (propValue != null) {
                html.append(" value=\"").append(escapeHTML(propValue.toString())).append("\"");
            }
            html.append(">");
        }
        if (html.length() == 0) {
            html.append("&nbsp;");
        }
        return html.toString();
    }
    
    private Map getFilterPropertyValues(HttpServletRequest request,
            FilterManager filterManager, ForumMessageFilter filter)
    {
        // Map of filter property name/value pairs
        Map map = new HashMap();
        try {
            // Property descriptors
            PropertyDescriptor[] descriptors = BeanUtils.getPropertyDescriptors(filter.getClass());
            // Loop through the properties, get the value of the property as a
            // parameter from the HttpRequest object
            for (int i=0; i<descriptors.length; i++) {
                String propName = descriptors[i].getName();
                String propValue = ParamUtils.getParameter(request,propName);
                map.put(propName, propValue);
            }
        } catch (Exception e) {e.printStackTrace();}
        return map;
    }
    
    private String escapeHTML(String html) {
        html = StringUtils.replace(html, "\"", "&quot;");
        return StringUtils.escapeHTMLTags(html);
    }
%>

<%	// Get parameters
	long forumID = ParamUtils.getLongParameter(request,"forum",-1);
    String classname = ParamUtils.getParameter(request,"filters");
    boolean install = ParamUtils.getBooleanParameter(request,"install");
    boolean remove = ParamUtils.getBooleanParameter(request,"remove");
    int position = ParamUtils.getIntParameter(request,"pos",-1);
    boolean edit = ParamUtils.getBooleanParameter(request,"edit");
    boolean saveProperties = ParamUtils.getBooleanParameter(request,"saveProperties");
    int filterIndex = ParamUtils.getIntParameter(request,"filterIndex",-1);
    
    // Indicate if we're doing global filters
    boolean isGlobal = (forumID == -1L);
    
    // Load the forum
    Forum forum = null;
    if (forumID > 0L) {
        forum = forumFactory.getForum(forumID);
    }
    
    // Get the filter manager
    FilterManager filterManager = null;
    if (forum != null) {
        filterManager = forum.getFilterManager();
    }
    else {
        filterManager = forumFactory.getFilterManager();
    }
    
    if (saveProperties) {
        if (filterIndex >= 0) {
            // The filter we're working with
            ForumMessageFilter filter = filterManager.getFilter(filterIndex);
            // A map of name/value pairs. The names are the names of the bean
            // properties and the values come as parameters to this page
            Map properties = getFilterPropertyValues(request, filterManager, filter);
            // Set the properties
            BeanUtils.setProperties(filter, properties);
            // Save the filters
            filterManager.saveFilters();
            // Done, so redirect to this page
            response.sendRedirect("filters.jsp?forum=" + forumID);
            return;
        }
    }
    
    // Number of installed filters
    int filterCount = filterManager.getFilterCount();
    // All filter classes
    ForumMessageFilter[] filters = forumFactory.getAvailableFilters();
    
    if (install && classname != null) {
        try {
            ForumMessageFilter newFilter
                = (ForumMessageFilter)(Class.forName(classname)).newInstance();
            filterManager.addFilter(newFilter);
            String redirect = "filters.jsp";
            if (forumID > -1L) {
                redirect += "?forum=" + forumID;
            }
            response.sendRedirect(redirect);
            return;
        }
        catch (Exception e) {}
    }
    
    if (remove && position > -1) {
        filterManager.removeFilter(position);
        String redirect = "filters.jsp";
        if (forumID > -1L) {
            redirect += "?forum=" + forumID;
        }
        response.sendRedirect(redirect);
        return;
    }
%>

<%@ include file="include/header.jsp" %>

<%  // Title of this page and breadcrumbs
    String title = "";
    if (isGlobal) {
        title = "Global Message Filters";
    } else {
        title = "Message Filters";
    }
    
    String[][] breadcrumbs = null;
    if (isGlobal) {
        breadcrumbs = new String[][] {
            {"Main", "main.jsp"},
            {"Global Message Filters", "filters.jsp"}
        };
    }
    else {
        breadcrumbs = new String[][] {
            {"Main", "main.jsp"},

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -