JSP/htmlui设计

JSP/htmlui设计,html,jsp,tomcat,Html,Jsp,Tomcat,我们有一些JSP代码要在页面中运行 有一个UI设计师,他将不断更新UI,但没有Tomcat服务器。我们希望他不要,因为他不是程序员 然而,每次他更新UI时都必须剪切和粘贴与JSP相关的代码,这让人感到恼火 有没有办法处理这个问题?我们更愿意保留相同的文件,但仍然保留它,这样他就可以看到自己的UI工作,而不用担心JSP,当他签入新文件时,我们不必剪切和粘贴与JSP相关的代码 此类代码的一个示例是,根据用户的不同,会显示某些导航菜单项 我们正在使用Tomcat身份验证。我想我们可以使用AJAX来获取

我们有一些JSP代码要在页面中运行

有一个UI设计师,他将不断更新UI,但没有Tomcat服务器。我们希望他不要,因为他不是程序员

然而,每次他更新UI时都必须剪切和粘贴与JSP相关的代码,这让人感到恼火

有没有办法处理这个问题?我们更愿意保留相同的文件,但仍然保留它,这样他就可以看到自己的UI工作,而不用担心JSP,当他签入新文件时,我们不必剪切和粘贴与JSP相关的代码

此类代码的一个示例是,根据用户的不同,会显示某些导航菜单项


我们正在使用Tomcat身份验证。我想我们可以使用AJAX来获取用户信息,但这是否不太安全?应用程序中的所有其他内容都是AJAX

这里的问题是此人没有与团队合作。相反,他正在为他们创造工作。。。这是双向的。继续读下去

我负责并管理前端开发。如果这个UI人员在我的团队中,我会强迫他设置一个Tomcat服务器。他只是需要学习一些东西

实际上,如果实现得当,JSP与视图的任何其他服务器端标记语言(如Rails+ERB、PHP、.NET等)没有太大区别。。。甚至Javascript模板引擎(小胡子、把手等)。同样的条件检查,对于循环,身份验证检查-所有需要的基本视图层逻辑都可用

如果他在Java项目/团队中,他需要学习Java前端。就这么简单

他的主要任务应该是基本的,坦率地说,他甚至不需要安装JavaIDE来完成这些任务。它们是:

  • 获取/推送源代码+分析差异(任何源代码管理客户端)
  • 将最新版本构建/部署到其本地环境(脚本或.bat文件)
  • 使用running应用程序*
  • (*)最后一部分是事情变得棘手的地方。如果您直接在正在运行的服务器上工作,然后在复制更新之前意外地运行了一个新的部署,那么您就完蛋了。如果使用符号链接(在Windows中也可用),则可能存在仅在编译后出现的文件,或在获取最新代码时出现的锁定或同步问题—所有这些都会产生问题

    我发现最有效的方法是处理代码回购位置(预构建),并创建两个脚本:

  • 构建+部署-停止运行服务器,清除目录和缓存,构建最新版本,并重新部署
  • 更新-将视图文件和任何其他必要的目录与部署目标同步。必须确保在Tomcat配置中禁用热部署,否则会出现内存泄漏错误

  • 这就是说,现在应该很明显:Java是最难为其开发UI的生态系统之一。编译的性质和复杂的环境需求使得开发缓慢而乏味,需要依赖不同的人或系统才能开发出一个像样的产品

    JSP本身虽然具有如上所述的功能,但几乎总是组织得很糟糕,包括各种方式的包含、标记文件、部分、框架——它成为UI用户最糟糕的噩梦。GSP(来自Grails)解决了许多组织问题,但需要开发团队的灵活性。即便如此,这也不是一个“理想”的解决方案

    JSP语法-JSTL、C:tags等带来了更大的麻烦。前端人员不编程,不使用IDE,因此在编写或自定义条件逻辑或循环时无法查找方法、对象、参数等。开发团队可以通过在页面上预先写下这些内容来提供帮助,但任何时候都需要进行更改或增强,这需要会议、对话和妥协

    从长远来看,您应该将Java应用程序从一个独立、更灵活、功能更强大的前端技术堆栈中抽象出来,使用基于REST/JSON的服务在两者之间进行对话。(旁注:对于具有规模的性能/应用程序,请确保您使用的是自定义协议或Web套接字)

    我的首选是node.js,因为前端开发人员可以使用他们最熟悉的语言:Javascript/JSON。但它可以是任何你特别喜欢的、可以设计的东西

    关键是消除前端和后端的瓶颈。这两个轨道都应该能够快速开发和迭代,RESTfulAPI是协作的关键点


    最后,对于那些有抱负的前端开发人员/设计师,但只懂Java(或其他服务器端技术)的人,我向你们挑战,让他们学习一些新的东西。面向用户的技术处于不断变化的状态,最近这种变化已经加快。如果您想拥有UI竞争产品,您需要投资于使其具有竞争力的技术。

    是关于推动设计更改还是关于登录中AJAX的安全性的问题?如果他在前端工作,他需要了解如何设置和维护本地环境,并学习一点JSP/JSTL,如果这正是他目前的工作内容。从长远来看,这对他(和你们)来说都会更好。你们两个都可以使用include(他在Apache中使用SSI,你们的jsp:include)来拉入静态HTML文件。他的Apache设置可以有一个静态包装器,带有硬编码版本的JSP代码。然后,他将在他们自己的文件中编辑HTML片段,这些片段可以按原样使用。不过,这是一个折衷方案。正如ProDigitalSon提到的,最好让他习惯于使用JSP。任何称职的前端开发人员都不应该有问题。