jsp 相关问题

JSP(JavaServer Pages)是一种在服务器上运行的基于Java的视图技术,它允许您在(客户端语言,如HTML,CSS,JavaScript等)中编写模板文本,并与后端Java代码进行交互。

获取状态:在 Eclipse 和 Tomcat 上运行 Maven 项目后 HTTP 状态 404“请求的资源不可用”

我正在使用 Eclipse 制作一个简单的 Maven 项目。有一个包含用户名和密码以及提交按钮的表单。 当我输入并提交默认用户名(admin)和密码(admin)时。它...

回答 1 投票 0

在 Eclipse 和 Tomcat 上运行 Maven 项目后获取 HTTP 状态 404“请求的资源不可用”

我正在使用 Eclipse 制作一个简单的 Maven 项目。有一个包含用户名和密码以及提交按钮的表单。 当我输入并提交默认用户名(admin)和密码(admin)时。它...

回答 1 投票 0

Struts 2 中的开关动作

我正在使用Struts,在我的项目中我有2个模块(管理员,用户)“管理员”有不同的操作,例如添加用户,删除用户,添加项目,删除用户和“用户&q...

回答 1 投票 0

使用 Struts 2 和约定插件的全局结果

我希望在我的应用程序中获得一些全局结果。在良好的旧 XML 配置中,它看起来像: 我希望在我的申请中获得一些全局结果。在良好的旧 XML 配置中,它看起来像: <global-results> <result name="error" type="redirectAction"> <param name="actionName">index</param> <param name="namespace">/</param> </result> </global-results> 但是当我使用约定插件时,XML 中的全局结果似乎被忽略,那么我如何使用约定插件来实现这一点呢?我不想让我的所有操作类都扩展定义了这些全局结果的自定义类。我认为 package-info.java 应该是我的朋友,但我所能定义的与结果有关的就是 @org.apache.struts2.convention.annotation.ResultPath。 只是为了澄清:我不想避免 struts.xml 配置 - 我只想有一些有效的全局转发,因此如果任何操作出现错误,我想将用户转发到中央错误页面。目前这不适用于我的配置。如果您在我的struts.xml或我的操作中看到问题并可以帮助我解决它那就完美了。 也许struts.xml中的顺序很重要?这是我的struts.xml的结构: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="false" /> <constant name="struts.convention.result.path" value="/content/"/> <constant name="struts.convention.default.parent.package" value="my-package"/> <constant name="struts.convention.package.locators.disable" value="true"/> <constant name="struts.convention.action.packages" value="..."/> <constant name="struts.custom.i18n.resources" value="global" /> <constant name="struts.multipart.maxSize" value="10485760" /> <package name="my-package" extends="struts-default,json-default" namespace="/"> <result-types> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> </result-types> <interceptors> <interceptor name="login" class="loginInterceptor" /> <interceptor name="pagetitle" class="pagetitleInterceptor"></interceptor> <interceptor-stack name="secureStack"> ... </interceptor-stack> <interceptor-stack name="insecureStack"> ... </interceptor-stack> </interceptors> <default-interceptor-ref name="secureStack" /> <global-results> <result name="error" type="redirectAction"> <param name="actionName">index</param> <param name="namespace">/</param> </result> </global-results> </package> </struts> 在我的行动中我有: public class MyActionClass extends ActionSupport { @Actions({ @Action(value = "my-action", results = { @Result(name = "success", type = "tiles", location = "my.location") }) }) public final String myAction() throws Exception { return ERROR; } } 当然myAction还有更多功能——这只是为了说明。当执行该操作时,它会转发到 my-action.jsp 而不使用图块,但我希望它转发到 /index.action。 不幸的是,您无法使用约定插件在包上定义 Result 或 Results 注释。您必须在 xml 配置中定义全局结果,并且它们不会被忽略,因为无论您使用哪个配置提供程序,都会定义运行时配置。解决方法是在基类上定义 Result 或 Results。 您正在 package 中定义 global-result。这些类型的结果(全局)仅对于定义它们的包来说是全局的。因此,只有那些也在同一包中声明的actions才能访问这些global-result。您面前有两个选择: XML 配置: 如何在 XML 配置中执行此操作非常明显(只需将它们定义在同一个包中): <package name="my-package" extends="struts-default,json-default" namespace="/"> <!-- This result is local to this action --> <action name="someAction"class="com.example.SomeAction" method="execute"> <result name="someLocalResult">/localResult.jsp</result> </action> . . . <global-results> <!--This result is global **to the actions in my-package** --> <result name="error" type="redirectAction"> <param name="actionName">index</param> <param name="namespace">/</param> </result> </global-results> </package> 约定插件: 因此,如果您使用约定插件仅将您的 java 类标记为 actions,那么您并没有为它们定义一个包(它们将属于默认包)。为此,您可以使用注释 @ParentPackage 告诉框架这个 action 属于这个包并且可以使用它的 global-result。 为了实现这一点,你的 java 类应该如下所示: @ParentPackage(value="my-pacakge") public class MyActionClass extends ActionSupport { @Actions({ @Action(value = "my-action", results = { @Result(name = "success", type = "tiles", location = "my.location") }) }) public final String myAction() throws Exception { return ERROR; } } 您的 struts.xml 将保持不变: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="my-package" extends="struts-default,json-default" namespace="/"> . . . <global-results> <result name="error" type="redirectAction"> <param name="actionName">index</param> <param name="namespace">/</param> </result> </global-results> </package> </struts> 摆脱设置每个操作的 @ParentPackage 的类似替代解决方案是将操作默认包设置为您最喜欢的包(此处为包含 global-result 的包)。只需将此常量元素添加到您的 struts.xml(在 <struts> 内部)即可: <constant name="struts.convention.default.parent.package" value="my-package"/> 这里有一个关于@ParentPackage的有用链接: 来自apache的@ParentPackage注释 关于:约定插件文档: 从2.1.7开始,使用注解定义的全局结果(在类级别定义)将被继承。 所以对我来说,我可以有一个基本动作,我的所有动作都可以扩展,然后我就有一个全局结果。另一个想法是 package-info.java。 同一份文件说: Convention 插件允许操作类为操作定义不同的结果。结果分为两类:全局和局部。 全局结果在操作类中定义的所有操作之间共享。这些结果被定义为操作类的注释。本地结果仅适用于定义它们的操作方法。 这是不同类型结果注释的示例` 所以我认为它们与标准的 Local Result 和 Global Result 是不同的概念。 标准支柱: 全局结果对于包中定义的每个Action/Interceptor都是可见的; 本地结果仅对该操作可见(但如果通过动态方法调用调用,则对所有方法可见); 如果该方法包含在 struts.xml 中的 Action 标记中,则本地结果仅对该 Action 和方法可见(那么同一 Action 类和不同方法将有多个操作标记)。 我认为对于约定,全局是(2.),本地是(3.)它们都是操作的本地,但是全局可以从每个方法返回,而本地只能从定义它的特定方法返回。

回答 3 投票 0

从Struts 2.5升级到Struts 6问题

升级到 Struts 6.3.0.2 后,此 Ajax 调用不起作用。我已经在 pom.xml 中包含了 JQuery 插件。我认为问题是 sj:div。非常感谢对此的任何帮助 <%@ page contentTy...

回答 1 投票 0

如何在网络服务器上设置 jsp 页面

我想建立一个网络服务器来提高我的技能并继续我的教育。我现在的问题是我只能访问 HTML 页面。当我创建一个 intex.jsp 并将其放在网络服务器上时,...

回答 1 投票 0

使用 JSP 从本地主机发送邮件时出现错误

经过几个小时的谷歌搜索,我从tutorialpoints网站获得了从JSP页面发送电子邮件的代码,我尝试了教程中提到的整个代码,还添加了推荐的jar文件。但之后

回答 1 投票 0

如何从json对象中获取数据并迭代值并将其显示在jsp页面中

我是编程新手。我一直在使用 struts2,我有一个返回 json 数据的操作类方法,它是一个嵌套对象的数组。 我想获取这些数据并迭代我...

回答 1 投票 0

如何在Struts 2中测试bean属性?

我有一堂这样的课: 公共类 Foo { 公共布尔 isValid() { 返回假; } } 在我的 JSP 文件中,我想在测试条件下使用 isValid 方法: 我有一堂这样的课: public class Foo { public boolean isValid() { return false; } } 在我的 JSP 文件中,我想在测试条件下使用 isValid 方法: <s:bean name="com.Foo" var="bar"></s:bean> <s:if test="%{bar.valid == false}"> <p>hello</p> </s:if> 但它不起作用。我做错了什么? 上下文变量由 # 引用,但您使用了不带数字符号的名称 bar。 <s:if test="%{#bar.valid == false}"> <p>hello</p> </s:if> 查看 OGNL 语言指南的变量参考。 OGNL 有一个简单的变量方案,它可以让你存储中间值 结果并再次使用它们,或者只是命名事物来表达 更容易理解。 OGNL 中的所有变量对于整个系统来说都是全局的 表达。您可以在变量前面使用数字符号来引用变量 它的名字,像这样: #var

回答 1 投票 0

Struts 2 动态变量

我正在尝试使用 set 标签在 Struts2 中创建动态变量 编号...

回答 2 投票 0

如何使用 OGNL 调用操作方法

如何使用 OGNL 调用操作方法? helloAction.java 公共字符串 getQuote() { return "别想,只要做"; } 成功.jsp 引用(): 如何使用 OGNL 调用操作方法? helloAction.java public String getQuote() { return "Don't think, just do"; } success.jsp <b>quote() :</b> <s:property value="quote()"/> <br> struts.xml <action name="greet" class="com.struts2.helloAction" > <interceptor-ref name="firewallStack"></interceptor-ref> <result name="SUCCESS">/WEB-INF/resources/success.jsp</result> <result name="input">/WEB-INF/resources/success.jsp</result> </action> 我从 struts 2 OGNL 获得了参考链接 这个quote()方法没有被调用。我正在使用 xwork-2.0.1.jar 和 ognl-2.6.11.jar。 你原来的语法几乎是正确的——只需去掉括号即可。 <s:property value="%{quote}" /> JavaBean 争用比显式方法调用更通用,例如,使用 JSP EL: ${quote} 当函数不带参数时,首选 JavaBean 约定。 这个 quote() 方法没有被调用。我正在使用 xwork-2.0.1.jar 和 ognl-2.6.11.jar。 你的行动中没有这种方法。如果你创建它: public String quote() { 并使用正常的 OGNL 方法调用语法: <s:property value="%{quote()}" /> 然后就会根据需要调用。 有关详细信息和语法,您可以阅读OGNL语言指南。

回答 2 投票 0

为什么升级到 Struts 6.3.0.2 后,Struts 标签中的转义不起作用

如果我有如下的 Struts 2 标签 结果应该...

回答 1 投票 0

Java Web 默认内容未显示

我是 MVC 新手,正在学习本教程。页面加载时,我很难默认显示记录。这是我在当前代码中看到的 我的 sevlet 工作中的两种方法,...

回答 1 投票 0

struts 升级 6.3.0.2 后,innerHtml 属性不起作用

如果我有一个如下的JSP 如果我有一个如下的JSP <s:optiontransferselect leftTitle="<strong>All system groups</strong>" </s> 结果应该是 <strong>All system groups</strong>,但看起来是因为它带有带有 escapeHTML 的强标签,我尝试将 struts.ui.escapeHtmlBody 设置为 false 但不起作用。 struts.ui.escapeHtmlBody设置仅允许在标签正文中切换转义选项。例如,如果您使用嵌套标签并允许转义标签正文中使用的所有标签。它不允许关闭 Struts 标签属性的转义值。 Struts 标签的内容是使用 Freemarker 生成的。最新版本的 Struts 使用其自动转义 html 输出功能,该功能在 Freemarker 中默认启用。 禁用自动转义 对于单个插值,您可以使用 ?no_esc 禁用自动转义: TEMPLATE <#-- Let's assume we have "HTML" output format by default. --> ${'<b>test</b>'} <#-- prints: &lt;b&gt;test&lt;/b&gt; --> ${'<b>test</b>'?no_esc} <#-- prints: <b>test</b> --> 您还可以使用 noautoesc 指令禁用整个部分的自动转义: TEMPLATE ${'&'} <#-- prints: &amp; --> <#noautoesc> ${'&'} <#-- prints: & --> ... ${'&'} <#-- prints: & --> </#noautoesc> ${'&'} <#-- prints: &amp; --> 就像输出格式一样,这只适用于块内的部分(“着色”逻辑)。 也可以在 ftl 标头中禁用整个模板的自动转义。然后可以使用 autoesc 指令重新启用某个部分: TEMPLATE <#ftl autoesc=false> ${'&'} <#-- prints: & --> <#autoesc> ${'&'} <#-- prints: &amp; --> ... ${'&'} <#-- prints: &amp; --> </#autoesc> ${'&'} <#-- prints: & --> 当转义被禁用时,您还可以强制转义单个插值,使用 ?esc: TEMPLATE <#ftl autoesc=false> ${'&'} <#-- prints: & --> ${'&'?esc} <#-- prints: &amp; --> 当然,autoesc 和 ?esc 也可以在 noautoesc 块内工作。 现在您可以欺骗 Freemarker 禁用单个值的自动转义 <s:optiontransferselect leftTitle="'<strong>All system groups</strong>'?no_esc"</s> 另一种选择是使用自定义模板来自定义 html 输出,使用自定义 Freemarker 模板,您可以在其中关闭自动转义。

回答 1 投票 0

为模型和视图传递多个值

我有一个 Java 对象,我使用 ModelandView 的一部分,如下所示, 弹簧控制器:- @RequestMapping(value = "/student", method = RequestMethod.GET) 公共 ModelAndView 学生(){ 重新...

回答 2 投票 0

ResourceBundleViewResolver 的替代品

我有一个带有views.properties 文件的旧版jsp 应用程序,我使用ResourceBundleViewResolver 来加载所有视图。由于 ResourceBundleViewResolver 已从 Spring 5.3 起弃用,我...

回答 1 投票 0

从jsp上传的文件没有进入servlet

我正在尝试从 JSP 上传 csv 文件并在 servlet 请求中使用。我不断在 servlet 中遇到异常,并且该文件似乎没有执行到那么远。 这是我的 JSP 的一部分......

回答 1 投票 0

使用 Java Servlet 的 URL 路由

我想知道是否有一种方法可以在 java servlet 中执行类似的代码,就像我在express.js 中所做的那样 在表达中我可以说例如: app.get('/:name',function(bla bla)){} :/name 它是

回答 1 投票 0

为什么<meta http-equiv="content-type" content="text/html; charset=UTF-8">对Jsp文件没有任何影响? [重复]

好吧,比如说,我有一个 .html 文件。如果文件有 那么如果文件包含其他语言那么它将正确显示 好吧,比如说,我有一个 .html 文件。如果文件有 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 那么如果文件包含其他语言那么它将正确显示 <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <h1>xxxx other language xxxx !</h1> 相反,如果 html 文件不包含 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 那么它将无法正确显示 Unicode。 好的,现在,我得到了一个 jsp 文件。即使我得到了 <meta http-equiv="content-type" content="text/html; charset=UTF-8">,它也不能正确显示 unicode。只有当我有 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 时它才会正确显示 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title></title> </head> <body> <h1>xxxx other language xxxx !</h1> 谁能解释一下为什么吗? 当你访问一个jsp页面时,Web服务器首先要把jsp翻译成Servlet。翻译程序应该从磁盘读取jsp,如果您不设置<%@ page contentType="text/html;charset=UTF-8" language="java" %>,它将读取iso8859-1中的文件。因此,即使尚未发送到浏览器,UTF-8 字符在这一步也会是错误的。 <%@ page contentType="text/html;charset=UTF-8" language="java" %>告诉翻译程序使用哪个字符集来读取jsp文件,并且当Web服务器将该jsp页面数据发送到浏览器时也将使用该字符集。因此,使用此语法告诉 Web 服务器使用哪个字符集来读取文件并将数据发送到浏览器。 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 是 html 语法,它告诉浏览器使用哪个字符集来解析从 Web 服务器接收的数据。所以使用这个语法来告诉浏览器如何解析数据。 然后,将这两行设置在一起,并确保两行字符集相同。 或者你可以只使用 <%@ page contentType="text/html;charset=UTF-8" language="java" %> ,你会发现它也有效,因为它会设置 http 响应头 Content-Type:text/html;charset=utf-8 auto。 使用 <%@ page contentType="text/html;charset=UTF-8" language="java" %> servlet 容器生成响应标头: Content-Type:text/html;charset=UTF-8 没有它是默认的: Content-Type:text/html;charset=ISO-8859-1 元信息不会覆盖标题。 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><base href="../../" /><style type="text/css" nonce="LAc1xFef">html{touch-action:manipulation}body{background:#fff;color:#1c1e21;direction:rtl;line-height:1.34;margin:0;padding:0;unicode-bidi:embed}body,button,input,label,select,td,textarea{font-family:'Segoe UI Historic', 'Segoe UI', Helvetica, Arial, sans-serif;font-size:13px}h1,h2,h3,h4,h5,h6{color:#1c1e21;font-size:14px;font-weight:600;margin:0;padding:0}h1{font-size:15px}h4,h5,h6{font-size:13px}p{margin:1em 0}b,strong{font-weight:600}a{color:#385898;cursor:pointer;text-decoration:none}button{margin:0}a:hover{text-decoration:underline}img{border:0}td,td.label{text-align:right}dd{color:#000}dt{color:#606770}ul{list-style-type:none;margin:0;padding:0}abbr{border-bottom:none;text-decoration:none}hr{background:#dadde1;border-width:0;color:#dadde1;height:1px}form{margin:0;padding:0}label{color:#606770;cursor:default;font-weight:600;vertical-align:middle}label input{font-weight:normal}textarea,.inputtext,.inputpassword{border:1px solid #ccd0d5;border-radius:0;margin:0;padding:3px}textarea{max-width:100%}select{border:1px solid #ccd0d5;padding:2px}input,select,textarea{background-color:#fff;color:#1c1e21}.inputtext,.inputpassword{padding-bottom:4px}.inputtext:invalid,.inputpassword:invalid{box-shadow:none}.inputradio{margin:0 0 0 5px;padding:0;vertical-align:middle}.inputcheckbox{border:0;vertical-align:middle}.inputbutton,.inputsubmit{background-color:#4267b2;border-color:#DADDE1 #d9dfea #0e1f5b #0e1f5b;border-style:solid;border-width:1px;color:#fff;padding:2px 15px 3px 15px;text-align:center}.inputaux{background:#ebedf0;border-color:#EBEDF0 #e7e7e7 #666 #666;color:#000}.inputsearch{background:#FFFFFF url(https://static.xx.fbcdn.net/rsrc.php/v3/yP/r/pzVF2zi_I48.png) no-repeat right 4px;padding-right:17px}.clearfix:after{clear:both;content:'.';display:block;font-size:0;height:0;line-height:0;visibility:hidden}.clearfix{zoom:1}.datawrap{word-wrap:break-word}.word_break{display:inline-block}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aero{opacity:.5}.column{float:right}.center{margin-right:auto;margin-left:auto}#facebook .hidden_elem{display:none!important}#facebook .invisible_elem{visibility:hidden}#facebook .accessible_elem{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}#facebook .accessible_elem_offset{margin:-1px}.direction_ltr{direction:ltr}.direction_rtl{direction:rtl}.text_align_ltr{text-align:left}.text_align_rtl{text-align:right}body{overflow-y:scroll}.mini_iframe{overflow-y:visible}.auto_resize_iframe{height:auto;overflow:hidden}.pipe{color:gray;padding:0 3px}#content{margin:0;outline:none;padding:0;width:auto}.profile #content,.home #content,.search #content{min-height:600px}.UIStandardFrame_Container{margin:0 auto;padding-top:20px;width:960px}.UIStandardFrame_Content{float:right;margin:0;padding:0;width:760px}.UIStandardFrame_SidebarAds{float:left;margin:0;padding:0;width:200px;word-wrap:break-word}.UIFullPage_Container{margin:0 auto;padding:20px 12px 0;width:940px}.empty_message{background:#f5f6f7;font-size:14px;line-height:17px;padding:20px 20px 50px;text-align:center}.see_all{text-align:left}.standard_status_element{visibility:hidden}.standard_status_element.async_saving{visibility:visible}img.tracking_pixel{height:1px;position:absolute;visibility:hidden;width:1px}#globalContainer{margin:0 auto;position:relative;zoom:1}.fbx #globalContainer{width:981px}.sidebarMode #globalContainer{padding-left:205px}.fbx #tab_canvas>div{padding-top:0}.fb_content{min-height:640px;padding-bottom:20px}.fbx .fb_content{padding-bottom:0}.skipto{display:none}.home .skipto{display:block}._li._li._li{overflow:initial}._aj3e,._aj3e video{display:block;height:4px;right:0;position:absolute;top:0;width:2px;z-index:-1}._aowd._li._li._li{overflow:hidden}._9053 ._li._li._li{overflow-x:hidden}._72b0{position:relative;z-index:0}.registration ._li._9bpz{background-color:#f0f2f5}._li ._9bp-{padding-top:5px;text-align:center}._li ._9bp- .fb_logo{height:100px}._li ._a66f{padding-top:5px;text-align:center}._li ._a66f .fb_logo{height:80px;padding-top:72px}._5vb_ #pageFooter{display:none}html body._5vb_ #globalContainer{width:976px}._5vb_.hasLeftCol #headerArea{margin:0;padding-top:0;width:786px}._5vb_,._5vb_ #contentCol{background-color:#e9ebee;color:#1d2129}html ._5vb_.hasLeftCol #contentCol{border-right:0;margin-right:172px;padding-right:11px;padding-top:11px}._5vb_.hasLeftCol #topNav{border-right:0;margin-right:172px;padding:11px 11px 0

jsp
回答 3 投票 0

java中的Environment.tickcount

此 C# 代码在 Java 中的等价物是什么? 整数刻度= 0; 刻度=环境.TickCount;

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.