作为企业级开发最流行的工具,用Myeclipse开发java web程序无疑是最合适的,java web前端采用jsp来显示,myeclipse默认打开jsp的视图有卡顿的现象,那么如何更改jsp默认的打开方式,让我们可以进行更快速的jsp开发呢?
简单介绍下Myeclipse吧!MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate.
由于myeclipse默认设置以jsp visuanl editor方式打开,所以会造成myeclipse卡顿的现象,那么该如何解决这种问题呢?
-
Myeclipse集成开发环境
使用Myeclipse开发web项目,编辑jsp页面时,会打开它的默认编辑器页面,同时也有预览页面,速度很慢,不适合开发。
那么该怎样提高jsp页面的打开速度呢?
首先我们还是打开window-preference,打开偏好设置。
进入偏好设置后,点击Editors-File Associations,然后会出现File types:
在File types中找到jsp类型,然后设置它的关联编辑器:
系统默认是使用Myeclipse Visual JSP Designer打开jsp页面的,不过这样打开很慢,因为是虚拟视图。在这里我们选择第二个视图,当然,你也可以使用后面的视图打开。
选中第二个视图后,点击右边的Default选项,然后点击OK保存后退出。
如果我们使用第一种视图打开,可以看到图形界面,不过这种方式编辑器会很卡。
如果采用第二种方式打开,虽然不能像浏览器那样预览,但是可以加快开发,这个全看自己爱好哦!
有时候我们需要重定向标准输出(stdout)错误输出(stderr)到编辑控件中:
比如我们作了一个前端编译器,编译的功能由mingw gcc来完成,这时我们要捕获它的编译消息到我们的输出窗口,这时怎么办呢!
很简单,我们需要用匿名管道来实现,参见如下代码:
SECURITY_ATTRIBUTES g_sa = {sizeof(SECURITY_ATTRIBUTES),NULL,TRUE};
void CGccDbgView::OnCompiler()
{
// TODO: Add your control notification handler code here
HANDLE hWritePipe, hReadPipe;
if ( !CreatePipe( &hReadPipe, &hWritePipe, &g_sa, 0 ) )
{
return;
}
CString strCmdLine="c:\\gcc.exe test.c";
// create an environment for the CGI process....
DWORD dwCreateFlags = 0;
PROCESS_INFORMATION pi;
STARTUPINFO si = {0};
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
si.wShowWindow = SW_HIDE;
si.hStdInput = hReadPipe;
si.hStdOutput = hWritePipe;
si.hStdError = hWritePipe;
BOOL bOk = CreateProcess( NULL, strCmdLine.GetBuffer(1),
NULL, NULL, TRUE,
dwCreateFlags, NULL,
"c:\\", &si, &pi );
strCmdLine.ReleaseBuffer();
// if created....
if ( bOk )
{
char buffer[1024]={0};
// wait for either cancel or process done....
WaitForSingleObject(pi.hProcess,INFINITE);
// release our hold on the thread....
CloseHandle( pi.hThread );
// send the body of the post to the stdin....
DWORD dwWritten = 0;
ReadFile( hReadPipe, buffer,1024,&dwWritten, NULL );
m_msg = buffer;
// AfxMessageBox(m_msg);
UpdateData(FALSE);
// close our hold on it....
CloseHandle( pi.hProcess );
}
}
这里m_msg属于编辑器控件变量。这样我们就能在编辑控件中看到结果了。如图: