c++ idea 远程调试_IntelliJ IDEA 2016.1建立Strut2工程并使用Tomcat调试

54707bc970eb239cf7702e9cab60b482.pngIntelliJ IDEA 2016.1建立Strut2工程的步骤如下:

1.从菜单中选择新建工程:

b95973113be61c64229efd2f5a85a994.png

2.在弹出的窗口中,左侧的列表中,选择"Java",在右侧的"Project SDK"中指明需要的Java SDK的版本,目前要求是1.8版本的,在下面的"Additional Libraries and Frameworks"中找到"Struts 2",并选中,同时选中"Web Application"。

01ffa62fea37f168d3d4856c0f4e09a5.png

3.点击下面的"Next"按钮。

a0c3d92e54e550f5605cf4c977d68e3a.png

4.等待IntelliJ IDEA下载完成必须的插件。点击左侧的"Project"边栏,之后可以到如下界面.

0f402e864999e64112240d4104dd2a90.png

点击右侧的"Project Stucture"按钮,如下图:

1348c816fff1126332f622553d0b08c8.png

修复存在的问题:

1c99702576e05c4c7472fe9b7561c21e.png

点击后出现的界面如下:

2650d6da43fcb441b5515708067ab064.png

在弹出的菜单中,选择"Put into /Web-INF/lib"。

c23d0346541acb41ff8d586707312924.png

配置完成后的界面如下:

73880831aa568671555f375821084228.png

点击"OK",关闭窗口。

5.编辑配置信息"Edit Configurations"

be4d22f3b0387fa79681bc8ab40cd404.png

6.在弹出的界面中点开右侧的"+"符号,也可以点击左侧顶部的"+"号。

bd3b8614f65089d92be55a4ab51588a3.png

7.在弹出的界面中,一直下拉,找到"Tomcat Server",点击展开,选择"Local"

45992b2576ad7d49889afebd9e16ad3a.png

45992b2576ad7d49889afebd9e16ad3a.png

Windows下面,建议安装 "32-bit/64-bit Windows Service Installer"

4bd433522148ec5d321776af4c6496de.png

9.安装最新的 Java SE Development Kit

目前最新的版本是8u73。保证电脑上面是最新的,如果使用JDK 7的话,会由于Tomcat的版本号太高导致在调试的时候报告如下错误:

Shell

Application Server was not connected before run configuration stop, reason:

Unable to ping server at localhost:9099

1

2

ApplicationServerwasnotconnectedbeforerunconfigurationstop,reason:

Unabletopingserveratlocalhost:9099

这个错误的原因是由于JDK 1.7是默认没有包含JMS服务的,导致Idea通过JMS跟Tomcat通信的时候失败。

10.设置Tomcat Server

53313accdca75febb91580f89fa60c73.png

823142a9a057a70a4de6e9b889fcf915.png

475dd70ae4ecb8e7e7e2430653d63231.png

配置完成后的界面显示如下:

72e44929fb64ebea555da0a2af3e5d49.png

此时底部提示"Warning No artificts configured",点击底部的"Fix"按钮。

6a2105cfde3c00e13e8fe72c120310ce.png

出现的窗口中自动帮我们加入了"Tools:war exploded"项目,点击下面的"Apply"按钮后,点击"OK"关闭设置页面。

f4d28f6ce5ed07600f797f09cec1a630.png

11.调试,点击主界面上面的调试图标,即可进入调试,此时会在默认的浏览器上打开网页。

a1683632c2f27c0b81b63e8f11569f0a.png

最后,浏览器上出现如下画面,说明设置成功。

47caf8905caa0832062f642aa6f19a7b.png

12.创建一个简单的Stucts2的MVC例子----TimeConvert

(1)先创建一个Model类来存放数据

首先,在src目录上鼠标右击,选择"New"-> "Java Class"并在对话框中输入名字"Tools.Model.TimeConvertStore",点击"OK"。

3d372688f2ef8d9315beb4ab9411fbe5.png

7d8fd5d1642523811ce892aed216db49.png

里面的代码如下:

Java

package Tools.Model;

public class TimeConvertStore {

public String getConvertTime() {

return convertTime;

}

public void setConvertTime(String time) {

this.convertTime = time;

}

private String convertTime;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

packageTools.Model;

publicclassTimeConvertStore{

publicStringgetConvertTime(){

returnconvertTime;

}

publicvoidsetConvertTime(Stringtime){

this.convertTime=time;

}

privateStringconvertTime;

}

这个Model类的public set和get方法允许访问private convertTime字符串属性,Struts 2框架需要将这个对象按照JavaBean方式暴露给View(TimeConvert.jsp)。

(2)创建View页面来显示Model类里存储的convertTime.

在web目录上鼠标右击,选择"New"-> "File"并在对话框中输入名字"TimeConvert.jsp",点击"OK"新建一个TimeConvert.jsp的jsp页面.

8cddc679f55630c475e4712f90d25eaf.png

bc7989958b5786857474c7a51ef0e123.png

代码如下:

JavaScript

Title

1

2

3

4

5

6

7

8

9

10

Title

页面中的taglib告诉Servlet容器这个页面将使用Struts 2的tags并且将它们用s来表示。

s:property的tag标签返回调用TimeConvertAction controller class的getTimeConvertStore方法后的值。这个方法返回一个TimeConvertStore对象。在TimeConvertStore加上了.convertTime后,就可以告诉Struts 2框架将调用TimeConvertStore的getConvertTime方法。TimeConvertStore的getConvertTime方法返回一个字符串,然后这个字符串将被s:property标签显示。

(3)创建一个Action类TimeConvertAction.java作为Controller.

在src目录上鼠标右击,选择"New"->"Java Class"并在对话框中输入名字"Tools.Controller.TimeConvertAction",点击"OK".

3d372688f2ef8d9315beb4ab9411fbe5.png

ee98eefc018b44771289c766833bbc4e.png

代码如下:

Java

package Tools.Controller;

import Tools.Model.TimeConvertStore;

import com.opensymphony.xwork2.ActionSupport;

import java.text.SimpleDateFormat;

import java.util.Date;

public class TimeConvertAction extends ActionSupport {

public String execute() throws Exception {

timeConvertStore = new TimeConvertStore();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

timeConvertStore.setConvertTime(df.format(new Date()));

return SUCCESS;

}

public TimeConvertStore getTimeConvertStore() {

return timeConvertStore;

}

public void setTimeConvertStore(TimeConvertStore timeConvertStore) {

this.timeConvertStore = timeConvertStore;

}

private TimeConvertStore timeConvertStore;

private static final long serialVersionUID = 1L;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

packageTools.Controller;

importTools.Model.TimeConvertStore;

importcom.opensymphony.xwork2.ActionSupport;

importjava.text.SimpleDateFormat;

importjava.util.Date;

publicclassTimeConvertActionextendsActionSupport{

publicStringexecute()throwsException{

timeConvertStore=newTimeConvertStore();

SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

timeConvertStore.setConvertTime(df.format(newDate()));

returnSUCCESS;

}

publicTimeConvertStoregetTimeConvertStore(){

returntimeConvertStore;

}

publicvoidsetTimeConvertStore(TimeConvertStoretimeConvertStore){

this.timeConvertStore=timeConvertStore;

}

privateTimeConvertStoretimeConvertStore;

privatestaticfinallongserialVersionUID=1L;

}

(4)增加struts配置到struts.xml文件中

建立映射关系,将TimeConvertAction类(Controller)和TimeConvert.jsp(View)映射在一起。映射后,Struts 2框架就能够知道哪个类将响应用户的action(the URL),这个类的哪个方法将被调用,哪个View能够得到这个方法的返回String结果。

XHTML

/p>

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

/TimeConvert.jsp

1

2

3

4

5

6

7

8

9

10

11

12

13

/p>

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

/TimeConvert.jsp

(5)在index.jsp中增加链接

首先在jsp页面顶部增加taglib说明

JavaScript

1

然后在body标签后增加p标签

JavaScript

TimeConvert

1

">TimeConvert

修改后的代码如下:

JavaScript

$Title$

TimeConvert

1

2

3

4

5

6

7

8

9

10

$Title$

">TimeConvert

点击调试后,运行效果如下图:

2e8633c957f37cdace489489bf12e6cf.png

点击超链接后显示如下:

c9c96240b38c09a10667d3e124692bdd.png

13.增加多语言支持i18n

需要注意的是,对于index.jsp中读取全局配置文件,需要先增加Spring框架,否则是无法通过在struts.xml中增加

XHTML

1

来实现的。如下图所示:

eca92c8830b95a24669a60b3d465bf3f.png

在跟"TimeConvertAction.java"相同的目录下面建立英文语言文件TimeConvertAction_en.properties,中文语言文件TimeConvertAction_zh.properties,注意,中文只能是Unicode编码的格式,否则会出现乱码。格式类似\u65f6\u95f4\u8f6c\u6362这样的格式。

e25242006b157e760d3f2d9dc3837134.png

其中TimeConvertAction_en.properties中的内容如下:

Vim

Title=TimeConvert

1

Title=TimeConvert

TimeConvertAction_cn.properties中的内容如下:

Vim

Title=\u65f6\u95f4\u8f6c\u6362

1

Title=\u65f6\u95f4\u8f6c\u6362

然后修改TimeConvert.jsp,在Title中引用我们定义的语言。修改

XHTML

Title

1

Title

为:

XHTML

1

修改后的TimeConvert.jsp文件如下:

XHTML

1

2

3

4

5

6

7

8

9

10

点击调试后,打开的页面中,会看到网页的Title变成了中文的"时间转换"。

14.Strut2增加对Json的支持

默认情况下Struts2不支持直接返回JSON,比较方便的方式是使用struts2-json-plugin来支持。

(1)增加spring框架,由于struts2-json-plugin需要调用spring框架,因此需要增加spring框架。右击工程,选择"Add Framework Support..."。

1e454e4b8c5777c548b60cb9cd465675.png

在弹出的窗口中,选择"Spring","Spring MVC"两项,同时在点击"Spring"的时候,勾选"Create emtpy spring-config.xml"。

66da7c428e6946696c42788b665d90e5.png

然后点击"OK",等待需要的Jar包下载完成。成功下载完成后,可以在lib目录下看到非常多的Jar文件被添加进来了。在web目录下的WEB-INF目录下多出来了applicationContext.xml,dispatcher-servlet.xml这两个文件。

173150812c47ed3e824717c6dfd867cf.png

43c931b7715d7797d1b7157a8e29f3cd.png

完成后点击界面上侧的"Project Structure"图标,解决提示的Jar包导出问题。

e2aef17d212c8f85fe848fc812b35f05.png

e931c88d32f0c55aff139b583578aaca.png

都选择第一项"Add 'xxxxxxxxxxx' to the artifact".

89a7b1d89f797a0ad7173d3327111471.png

(2)确认项目使用的Struts2的版本。点击界面上侧的"Project Structure"图标

e2aef17d212c8f85fe848fc812b35f05.png

fca919d8e4d83e63b42fd28ed1e802c8.png

从上图可以看到我们的Struts2的版本是2.3.20.1

(3)手工去下载struts2-json-plugin插件,选择与我们的Struts2的版本相同的版本的插件。之所以需要手工下载而不是要求IntelliJ IDEA在Maven中自动下载原因在于,由于我们建立项目的时候没有使用Maven,因此我们项目Lib目录下的Struts2的Jar包是没有带版本号的。而如果要求Maven自动下载的话,会由于找不到带版本号的Struts2的Jar包,而自动引入一堆的带版本号的Struts2的Jar包。导致Struts2的Jar包出现两份,一份是有版本号的,一份是我们现在的样子。导致无法编译通过,因此还是手工引入即可。

由于我们的Struts2的版本是2.3.20.1,因此,我们下载2.3.20.1版本的struts2-json-plugin.

26561afde2f001877469df80c017c81e.png

下载完成后放到项目的lib目录下,然后右击struts2-json-plugin-2.3.20.1.jar,选择"Add As Library".

66e7327cd2960256ca79105f1a6934ee.png

0d553c949553ffc8330ccd9ccc0ea53b.png

点击OK后关闭。

继续点击界面右上侧的"Project Structure"图标

e2aef17d212c8f85fe848fc812b35f05.png

6559081063059d19a5399b02fd5bd2ec.png

修改src目录下的struts.xml。调整部分如下图所示。

bcdfbe51f107a89a06b7c27be11ecc03.png

action的返回类型为json时的可配置参数详解:

XHTML

dataMap

true

userList.*

SUCCESS

1

2

3

4

5

6

7

8

9

10

11

dataMap

true

userList.*

SUCCESS

15.参考链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值