- 浏览: 1060858 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
nieanan:
感谢,很有帮助。
eclipse 改变JAVA_HOME路径 -
Orange_killer:
写的什么东西,文不对题
Hibernate Search大数据量手动建立索引 -
xiaoasha:
org.eclipse.equinox.servlet.api ...
《OSGI实战》遇到的问题 -
powertech:
写的挺细,有用!
SyntaxError: Non-ASCII character Python、Unicode和中文 -
huang_yong:
public class XMLUtil {
pri ...
XStream 去除生成的XML节点的class="list"
想要自己写一个login和editor页面,可以让用户直接登录就可以编辑某个页面。从网上找到了一段登陆的代码:
<%@ page session="true" import="org.opencms.main.*, org.opencms.jsp.*,org.opencms.file.*, java.lang.String" %> <% CmsJspActionElement cms = new CmsJspActionElement(pageContext,request,response); String user = request.getParameter("user"); String password = request.getParameter("password"); String url = request.getParameter("url"); if(url==null || url.length()==0 || url.equalsIgnoreCase("null")) url = ""; boolean loginFailed = false; //form was submitted => try to log in and redirect to given URl if((user != null) && (user.length() != 0)) { try{ CmsObject cmsObject = cms.getCmsObject(); cmsObject.loginUser(user, password); CmsProject cmsproject = cmsObject.readProject("Offline"); cmsObject.getRequestContext().setCurrentProject(cmsproject); cmsObject.getRequestContext().setSiteRoot("/sites/default/"); //login successful - redirect to given URL response.sendRedirect(url); } catch ( CmsException e ) { loginFailed = true; } } %> <% //no user submitted or login failed => show login form if(user==null || user.length()==0 || loginFailed) { %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Frontend login</title> </head> <body onload="document.forms[0].elements[0].focus()"> <% if (loginFailed) { %> <em>Login failed!</em> <% } %> <h1>please login:</h1> <form method="post" action="<%=cms.info("opencms.url")%>"> <input type="hidden" name="url" value="<%=url%>" /> <p>username: <input name="user" /></p> <p>password: <input name="password" type="password" /></p> <p><input type="submit" /></p> </form> </body> </html> <% } %>登陆成功了,可是opencms却不让我编辑页面,只能编辑/site/default/下的资源。一开始以为是
cmsObject.getRequestContext().setSiteRoot("/sites/default/");
引起的,可是把root设置到'/site/mysite/'却还是不行,没办法,我只好调试opencms的源代码,发现每次跳转到新的页面,site root 都会被定到"/site/default/",而我要的文件在/site/mysite/下面,为什么会这样呢?后来开到org.opencms.workplace.CmsLoginHelper.login方法后发现原来少了这段代码:
// only for workplace users, so that direct edit works if (OpenCms.getRoleManager().hasRole(getCms(), CmsRole.WORKPLACE_USER)) { // get / create the workplace settings CmsWorkplaceSettings wpSettings = getSettings(); if (wpSettings == null) { // create the settings object wpSettings = new CmsWorkplaceSettings(); wpSettings = initWorkplaceSettings(getCms(), wpSettings, false); } // set the settings for the workplace wpSettings.setSite(getCms().getRequestContext().getSiteRoot()); wpSettings.setProject(getCms().getRequestContext().currentProject().getUuid()); wpSettings.setUser(getCms().getRequestContext().currentUser()); HttpSession session = getJsp().getRequest().getSession(true); storeSettings(session, wpSettings); }
原来我没有把siteRoot设置到session里面,所以每次条到新的jsp页面siteRoot就会被重置了。希望有这方面需求的兄弟看完可以有点启示,不用再挣扎了。
这里是我写的代码:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="org.opencms.jsp.*, org.opencms.main.*, org.opencms.file.*, java.lang.String, org.opencms.workplace.*" %> <% String uri = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort(); String userName = request.getParameter("name"); String password = request.getParameter("password"); String projectName = "Offline"; try{ new CmsLoginHelper(pageContext,request,response).login(userName, password, projectName, "/sites/mysite", "news/news_1.html"); response.sendRedirect("/opencms/opencms/system/workplace/editors/editor.jsp?resourcelist=&resource=news%2Fnews_1.html"); } catch (Exception e) { System.out.println("Can' t login user " + userName + ": " + e); e.printStackTrace(); // Redirect to error-Site response.sendRedirect(uri+request.getParameter("errorUri")); } %>
发表评论
-
CreateResource 最后一个参数应该传什么
2008-11-06 18:14 1503CmsObject.createResource(String ... -
CMS_STATICEXPORT_LINKS的数据是如何生成的
2008-11-05 16:43 1466CMS_STATICEXPORT_LINKS里面的数据是静态导 ... -
I_CmsModuleAction取得的CmsObject是Online模式下的
2008-11-05 16:33 1419继承CmsModuleAction取得的CmsObject是属 ... -
Vfs和rfs的module文件同步
2008-10-29 15:03 1637今天,从开发机子上的DB拷贝了一份到测试机子上,结果发现,测试 ... -
static export programmly,静态导出手工编码
2008-10-24 19:01 1406静态导出的手工编码: cmso.lockResource( ... -
static export on demand模式会删除已经导出的文件
2008-10-24 17:56 1759如果你使用org.opencms.staticexport.C ... -
Opencms 静态导文件后缀需要设置
2008-10-23 16:46 1480今天在做尽态导出的时候发现,.js结尾的文件总是被ignore ... -
Opencms 静态导出子路径的设置
2008-10-23 11:03 4785做过opencms静态导出的人都知道,如果你把open ... -
opencms schedule job 参数的格式
2008-10-21 10:51 1601设置opencms schedule job的时候在第二步,有 ... -
opencms schedule job 中操作文件需要注意project设置
2008-10-20 18:16 1780今天,自己写了一个schedule job ,很简单,只要写一 ... -
opencms 远程调试
2008-10-20 18:07 1681Debugging From OpenCms Wiki Jum ... -
The content of element type "field" is incomplete
2008-10-17 17:55 2583修改了search功能的filed后,重新启动opencms, ... -
jsp页面获得调用者的uri
2008-10-09 11:27 1406如果点击一个opencms的资源页面,opencms实际上,是 ... -
自定义资源属性
2008-10-08 17:54 1416右键点击资源页面->选择properties->点 ... -
opencms批量修改filetype和filename
2008-10-08 17:43 1579注意:我下面的程序是在数据迁移的事候,用来批量修改自定义结构化 ... -
OpenCms结构化搜索
2008-10-06 15:18 2018如何对opencms自定义的结构化模版resources实现s ... -
在eclipse里面调试opencms模块代码
2008-07-04 17:09 2816a. 安装tomcatPlugin b. 在本机安装openc ... -
引用Opencms自带的树形页面
2008-03-20 14:31 1683在使用move/rename功能时,点击输入框的右边的sear ... -
How to set a value in a xmlcontent resource
2008-03-20 14:22 1529我引用两个老外的代码来说明问题:如果你使用这一段代码,试图改变 ... -
OpenCms 参数path 与name的区别
2008-03-17 17:53 1584直接调用过OpenCms api的肯定知道,org.openc ...
相关推荐
标题 "org.opencms.welcome-8.5.2.zip" 暗示这是一个与OpenCMS相关的开源项目,OpenCMS是一个用Java开发的、用于构建和管理企业级网站内容的开源内容管理系统。8.5.2是该版本的标识,意味着这是OpenCMS在特定时间点...
接着,配置OpenCms数据库连接,通常是通过修改`opencms-system/WEB-INF/classes/opencms.properties`文件,设置数据库URL、用户名和密码。最后,启动Tomcat,访问http://localhost:8080/opencms,如果看到OpenCms的...
1. **定位配置文件**:找到`tomcat/webapps/cms623/WEB-INF/config/opencms-system.xml`文件。 2. **增加配置**:在文件中增加以下配置: ```xml ``` 这段配置指定了新的站点文件夹`testWeb`...
土拨鼠-opencms-maven-插件 一个帮助 Opencms 模块开发的 Maven 插件。 在查看它的实际效果 发布目标 通过 JLAN 服务器将修改后的资源发布到 opencms 配置属性 < url>smb://Admin:admin@localhost:1446/OPENCMS/ ...
标题中的“OpenCms-Struts-开源”意味着这是一个关于将OpenCms与Struts框架整合的开源项目。在描述中提到,该项目可能已停止更新,但对有兴趣接管或学习OpenCms与Struts集成的人来说,它仍具有一定的参考价值。 ...
OpenCms Maven 插件是由 Kamomileware 开发的一款工具,专为 OpenCms(一个开源的内容管理系统)设计,旨在简化模块的打包、部署以及原型创建过程。这款插件是基于 Java 开发的,因此与 Maven 构建系统紧密结合,为...
#### 五、使用OpenCMS创建网站 - **Workplace的使用**: - Workplace是OpenCMS的核心工作界面,用于内容的创建和管理。 - **模块的创建/导出/导入**: - 可以创建自定义模块来扩展系统功能。 - 支持模块的导出和...
OpenCms是一款流行的开源内容管理系统,它为网站的创建、管理和发布提供了强大的工具。而"OpenCms JMX Integration"是针对这个系统的一个扩展,它实现了对OpenCms的Java管理扩展(JMX)集成,使得系统管理员可以更加...
本章介绍了如何使用OpenCMS创建简单的页面,并且深入探讨了JSP模版的创建与使用,为后续的学习打下了坚实的基础。 #### 四、OPENCMS XML内容管理 **4.1 创建一个简单的XSD** - **4.1.1** 学习XSD(XML Schema ...
OpenCms是一个开源的内容管理系统,它提供了一个强大的平台来创建、管理和发布数字内容。要创建一个后台管理模块,你需要理解OpenCms的工作原理以及它的模块系统。以下是对创建OpenCms后台管理模块的详细步骤和相关...
1. **事件创建与编辑**:用户可以通过系统界面创建新的事件,填写事件的标题、描述、日期和时间等信息,并可以设置事件的持续时间、重复频率以及相关联的资源。 2. **日历视图**:提供多种日历视图,如日视图、周...
OpenCms ANT Build允许从构建树(例如,在您的IDE中)构建OpenCms模块,然后可以将其安装在OpenCms服务器上。 它包含2个用于编写自定义生成过程脚本的ANT任务。 包含带有build.xml的示例树。
Opencms 创建站点指南 Opencms 是一个基于 Java 的开源内容管理系统,提供了强大的站点创建和管理功能。本文将详细介绍如何使用 Opencms 创建一个站点,从下载和安装 Opencms 到创建站点和模板的每一个步骤都会被...
mvn de.zebrajaeger:opencms-resource-plugin:createResource \ -DnewResourceName=abc 带自定义图标 mvn de.zebrajaeger:opencms-resource-plugin:createResource \ -DnewResourceName=abc \ -DiconSource=...
《Ant与OpenCMS集成:深入理解ant-opencms-1.2.jar.zip》 在IT行业中,构建自动化是提高开发效率的关键环节,而Apache Ant作为Java领域内广泛使用的构建工具,扮演着至关重要的角色。Ant以其XML为基础的构建文件...
综上所述,OpenCMS 6.2.x 提供了一套完整的内容管理系统解决方案,不仅支持基本的网页创建与编辑功能,还包含了高级功能如联系表单创建、图像画廊展示等,极大地提升了网站制作的灵活性和效率。对于企业和个人而言,...
OpenCms是一款开源的内容管理系统,它提供了一个基于Web的界面,用于创建、管理和发布网站内容。本教程将详细讲解如何安装并配置OpenCms,包括与之配套的Tomcat应用服务器和MySQL数据库。 首先,我们需要了解Tomcat...