zoukankan      html  css  js  c++  java
  • Myeclipse6.5迁移到IDEA

    背景

    myeclipse开发的javaweb项目用svn管理。现要转用idea开发。因为发现idea实在是太好用了。myeclipse6.5是个纯净版,用了两年,对于新手来说用myeclipse6.5有利于懂得原理性的操作。

    迁移步骤

    导入IDEA

    Import Project选择要导入的项目 -> Import project from external model 选择 Eclipse -> Create module files near .classpath files(此项生成.impl文件的位置) -> 一直下一步直到结束

    没有Import Project可以通过以下方法添加

    配置环境

    Project配置

    点击Project Structure,配置项目环境

    Models配置

    添加Lib包

    Libraries配置所需要的jar包,如果是maven会很简单

    然后到Modules里面设置dependencies添加此lib里面设置,因为lib下面会自动添加到dependencies。

    添加servlet-api.jar、jsp-api.jar、jstl-1.2.jar三个包。其中前两个可以用Tomcat模块代替,第三个要自己下载导入。

    转为Web项目

    Facets

    转换为Web项目

    SourceRoots要勾选为src,即classpath路径。如果是maven一定要把java和resource都勾上

    生成最终项目部署文件

    生成部署文件或者war包,依赖包变更时这里也要跟着动。

    配置SVN

    Setting -> Version Control -> Subversion 

    配置Use command line client为svn.exe

    如果发现自己安装的svn没有svn.exe文件要找到安装包重新modify,装上command命令行工具后即可. 

    Myeclipse和IDEA区别

    Myeclipse6.5开发WEB

    用Build Path引入JDK、JavaEE(只用到javaee.jar,jstl1.2.jar)、lib包。

    JavaEE5中的jar包如下:

    javaee.jar:javaweb开发的基础,九大内置对象和四大作用域就在这里。但是这个jar包最终不会被发布到lib下面,由tomcat中lib下的servlet-api.jar支持所以不会报错。

    jsf-api.jar:JavaServer Faces(JSF)是一个为网络应用程序构建基于组件的用户界面的Java规范,实际上我并没有使用到。

    jsf-impl.jar:JSF的具体实现,为了展现UI组件和管理它们的状态;操作事件、服务器端的确认和数据变换;定义页面导航;支持国际化和可访问性;提供对所有特性的可扩展性的API为了在JSP中表示UI组件和拍发组件给服务器端对象的两个JSP自定义tag库。

    jstl-1.2.jar:JSP标准标签库JSP Standard Tag Library)是Java EE网络应用程序开发平台的组成部分。它在JSP规范的基础上,扩充了一个JSP的标签库来完成一些通用任务,比如XML数据处理、条件执行、数据库访问、循环和国际化。JSTL提供了一个有效的途径,以在JSP页面中嵌入逻辑,而不是直接嵌入Java代码。使用标准标签集,减少了Java代码导致的不连续,从而提高代码的可维护性,并达到应用软件代码开发与用户界面间的关注点分离。

    IDEA开发WEB

    要引入jdk,lib包,还有支持web开发的jar(idea不像Myeclipse那么方便直接引入JavaEE5即可要分别导入servlet-api.jar,jsp-api.jar,jstl.jar代替,servlet-api.jar + jsp-api.jar = javaee.jar)

    先在Libraries中添加jstl-1.2.jar,然后在Modules中添加。

     在Modules -> 中添加Tomcat Library(包含servlet-api.jar,jsp-api.jar,这个要设为Provided,因为只参与开发时使用,运行时Tomcat中存在),然后在添加Libraries中引入的jstl-1.2.jar(这个设为Runtime,在运行时用)。

    然后在Artifacts中确认编译后的lib.jar包存在jstl.jar

    如果是Maven,很方便。servlet-api.jar + jsp.jar就是上面tomcat提供的,所以只用provided。jstl手动导包,用runtime。

        <dependencies>
            <!--servlet-->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>
            <!--jsp-->
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.2</version>
                <scope>provided</scope>
            </dependency>
            <!--jstl-->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
                <scope>runtime</scope>
            </dependency>
        </dependencies>

    迁移后遇到的问题

    org.apache.jasper.JasperException: The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be resolved in either web.xml or the jar files deployed with this application
        org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
        org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:293)
        org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:80)
        org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:251)
        org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:122)
        org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:431)
        org.apache.jasper.compiler.Parser.parseDirective(Parser.java:489)
        org.apache.jasper.compiler.Parser.parseElements(Parser.java:1445)
        org.apache.jasper.compiler.Parser.parse(Parser.java:144)
        org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
        org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:202)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
        org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        com.gmtx.system.filter.CheckLoginFilter.doFilter(CheckLoginFilter.java:74)
        org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
        org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

    引入到IDEA后发现带有<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>的jsp界面都不能访问了,回去用Myeclipse发现也不行。

    目测是缺少jstl.jar包,但是看了下并不缺。尝试了网上的各种方法都不行,最后发现换了个tomcat就好了。不知道为啥,tomcat突然就坏了,换的这个是同一个压缩包解压的。

  • 相关阅读:
    poj 3466 A Simple Problem with Integers
    java运行脚本语言demo
    Good Bye 2013---B. New Year Present
    游标-----内存中的一块区域,存放的是select 的结果
    Oracle 游标使用全解
    Oracle系列:记录Record
    10大协作办公工具:实现团队工作效率最大化
    如何有效使用Project(1)——编制进度计划、保存基准
    多项目同时进行如何做好进度管理
    @RISK
  • 原文地址:https://www.cnblogs.com/aeolian/p/11833996.html
Copyright © 2011-2022 走看看