对于与上下文路径关联的命名空间[/ user]和操作名称[user!add],没有映射的Action(There is no Action mapped for namespace [/user] and action name [user!add] associated with context path)
单击
index.jsp
页面中的URL后,它将返回消息There is no Action mapped for namespace [/user] and action name [user!add] associated with context path [/Struts2]. - [unknown location] com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37) com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:552) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) java.lang.Thread.run(Thread.java:722) You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set: struts.devMode=false in your WEB-INF/classes/struts.properties file.
项目结构:
/Struts2/WebRoot/WEB-INF/web.xml
/Struts2/src/struts.xml
/Struts2/WebRoot/index.jsp
/Struts2/WebRoot/user_add_success.jsp
/Struts2/src/com/bjsxt/struts2/user/action/UserAction.java
/Struts2/src/com/bjsxt/struts2/user/model/User.java
我导入的struts包
- /Struts2/WebRoot/WEB-INF/lib/commons-fileupload-1.3.jar
- /Struts2/WebRoot/WEB-INF/lib/commons-io-2.2.jar
- /Struts2/WebRoot/WEB-INF/lib/commons-lang3-3.1.jar
- /Struts2/WebRoot/WEB-INF/lib/commons-logging-1.1.jar
- /Struts2/WebRoot/WEB-INF/lib/freemarker-2.3.19.jar
- /Struts2/WebRoot/WEB-INF/lib/javassist-3.11.0.GA.jar
- /Struts2/WebRoot/WEB-INF/lib/ognl-3.0.6.jar
- /Struts2/WebRoot/WEB-INF/lib/struts2-core-2.3.16.jar
- /Struts2/WebRoot/WEB-INF/lib/xwork-core-2.3.16.jar
/ Struts2 / WebRoot / WEB-INF / web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
/ Struts2 / src / struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="user" extends="struts-default" namespace="/user"> <action name="user" class="com.bjsxt.struts2.user.action.UserAction"> <result>/user_add_success.jsp</result> </action> </package> </struts>
/ Struts2 / WebRoot / index.jsp
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <% String path = request.getContextPath(); String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <head> <base href="<%=basePath %>"/> <title>Insert title here</title> </head> <body> use Domain Model to recieve param <a href="user/user!add?user.name=a&user.age=8">add</a> </body> </html>
/ Struts2 / WebRoot / user_add_success.jsp
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Insert title here</title> </head> <body> User Add Success! </body> </html>
/ Struts2 / src / com / bjsxt / struts2 / user / action / UserAction.java
package com.bjsxt.struts2.user.action; import com.bjsxt.struts2.user.model.User; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private User user; //private UserDTO userDTO; public String add() { System.out.println("name=" + user.getName()); System.out.println("age=" + user.getAge()); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
/ Struts2 / src / com / bjsxt / struts2 / user / model / User.java
package com.bjsxt.struts2.user.model; public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
After clicking on the URL in the
index.jsp
page, it returns the messageThere is no Action mapped for namespace [/user] and action name [user!add] associated with context path [/Struts2]. - [unknown location] com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37) com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:552) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) java.lang.Thread.run(Thread.java:722) You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set: struts.devMode=false in your WEB-INF/classes/struts.properties file.
Project structure:
/Struts2/WebRoot/WEB-INF/web.xml
/Struts2/src/struts.xml
/Struts2/WebRoot/index.jsp
/Struts2/WebRoot/user_add_success.jsp
/Struts2/src/com/bjsxt/struts2/user/action/UserAction.java
/Struts2/src/com/bjsxt/struts2/user/model/User.java
the struts package I import
- /Struts2/WebRoot/WEB-INF/lib/commons-fileupload-1.3.jar
- /Struts2/WebRoot/WEB-INF/lib/commons-io-2.2.jar
- /Struts2/WebRoot/WEB-INF/lib/commons-lang3-3.1.jar
- /Struts2/WebRoot/WEB-INF/lib/commons-logging-1.1.jar
- /Struts2/WebRoot/WEB-INF/lib/freemarker-2.3.19.jar
- /Struts2/WebRoot/WEB-INF/lib/javassist-3.11.0.GA.jar
- /Struts2/WebRoot/WEB-INF/lib/ognl-3.0.6.jar
- /Struts2/WebRoot/WEB-INF/lib/struts2-core-2.3.16.jar
- /Struts2/WebRoot/WEB-INF/lib/xwork-core-2.3.16.jar
/Struts2/WebRoot/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
/Struts2/src/struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="user" extends="struts-default" namespace="/user"> <action name="user" class="com.bjsxt.struts2.user.action.UserAction"> <result>/user_add_success.jsp</result> </action> </package> </struts>
/Struts2/WebRoot/index.jsp
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <% String path = request.getContextPath(); String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <head> <base href="<%=basePath %>"/> <title>Insert title here</title> </head> <body> use Domain Model to recieve param <a href="user/user!add?user.name=a&user.age=8">add</a> </body> </html>
/Struts2/WebRoot/user_add_success.jsp
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Insert title here</title> </head> <body> User Add Success! </body> </html>
/Struts2/src/com/bjsxt/struts2/user/action/UserAction.java
package com.bjsxt.struts2.user.action; import com.bjsxt.struts2.user.model.User; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private User user; //private UserDTO userDTO; public String add() { System.out.println("name=" + user.getName()); System.out.println("age=" + user.getAge()); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
/Struts2/src/com/bjsxt/struts2/user/model/User.java
package com.bjsxt.struts2.user.model; public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
原文:https://stackoverflow.com/questions/22099647
最满意答案
在Greasemonkey(以及Tampermonkey和大多数userscript引擎)中,如果符合@ include,@exclude和/或@match指令, 脚本将自动触发iframe 。
而且,一个受欢迎的问题是如何阻止Greasemonkey对iframe进行触发 。所以,如果你的脚本有这样的匹配:
@match https://fiddle.jshell.net/*
它会在jsFiddle“输出”页面上触发,无论它们是否出现在iframe中。
如果您想要拍摄JUST iframed内容:
然后你会检查
window.self
属性。
例如,假设您有一个目标页面,如:<body> <h1>I'm some webpage, either same-domain or not.</h1> <iframe src="//domain_B.com/somePath/somePage.htm"> ...
然后你可以使用如下脚本:
// ==UserScript== // @name _Fires specially on domain_B.com iframes // @match *://domain_B.com/somePath/* // ==/UserScript== if (window.top === window.self) { //--- Script is on domain_B.com when/if it is the MAIN PAGE. } else { //--- Script is on domain_B.com when/if it is IN AN IFRAME. // DO YOUR STUFF HERE. }
In Greasemonkey (And Tampermonkey and most userscript engines) a script will fire on an iframe automatically if it meets the @include, @exclude, and/or @match directives.
And, a popular question is how to stop Greasemonkey from firing on iframes.So, if your script had a match like:
@match https://fiddle.jshell.net/*
It would fire on jsFiddle "output" pages whether or not they appeared in an iframe.
If you wanted to fire on a JUST iframed content:
Then you would check the
window.self
property.
For example, suppose you had a target page like:<body> <h1>I'm some webpage, either same-domain or not.</h1> <iframe src="//domain_B.com/somePath/somePage.htm"> ...
Then you could use a script like:
// ==UserScript== // @name _Fires specially on domain_B.com iframes // @match *://domain_B.com/somePath/* // ==/UserScript== if (window.top === window.self) { //--- Script is on domain_B.com when/if it is the MAIN PAGE. } else { //--- Script is on domain_B.com when/if it is IN AN IFRAME. // DO YOUR STUFF HERE. }
Important:
With the release of Greasemonkey 4, iframes handling is severely crippled (and many other things are broken, besides).
It still works properly with Tampermonkey, Violentmonkey and just about every other userscript engine.
It is strongly recommended (including by Greasemonkey itself) that you do not use Greasemonkey 4 or later.
相关问答
更多-
基于derjanb评论,我回答了显示我为实现用户脚本转移而采取的步骤的问题。 输入about:支持 firefox地址,然后找到并单击打开的文件夹 现在找到并打开gm_scripts文件夹,单击以在其中搜索并键入.user.js ,当搜索结束时选择所有要转移的用户脚本。 现在右键单击选定的文件并选择发送到 - 压缩(压缩)文件夹。 创建zip文件后,在桌面上或在创建它的位置找到它,然后打开Tampermonkey仪表板 转到公用程序选项卡,并在Zip选择导入,找到您的zip文件,一旦你点击打开按钮,它应该加 ...
-
在Greasemonkey(以及Tampermonkey和大多数userscript引擎)中,如果符合@ include,@exclude和/或@match指令, 脚本将自动触发iframe 。 而且,一个受欢迎的问题是如何阻止Greasemonkey对iframe进行触发 。 所以,如果你的脚本有这样的匹配: @match https://fiddle.jshell.net/* 它会在jsFiddle“输出”页面上触发,无论它们是否出现在iframe中。 如果您想要拍摄JUST iframed内容: 然 ...
-
这显然是Tampermonkey的一个bug,因为我发现它实际上选择了这个选项; 它只是不显示旁边文本框的选项。 我会尽力与开发者讨论这个问题。 This is apparently a bug with Tampermonkey, as I found out that it does actually select the option; it just doesn't show the option on the textbox next to it. I will try to reach out ...
-
你问题的代码, function myFunction() { document.getElementById("feed_button").click(); } 将工作。 我假设因为它在function ,你忘了用myFunction()调用函数。 或者,更简单的方法是完全删除该功能,并将其更改为以下内容。 document.getElementById("feed_button").click(); The code from your question, function myFuncti ...
-
如何使用Greasemonkey(或Tampermonkey)重叠图形?(How to overlay a figure using Greasemonkey (or Tampermonkey)?)[2022-01-31]
该代码的直接问题是,无处.appendChild(canv) 实际上将其添加到页面中 。 但是如果你真的想在一些第三方网站上覆盖一个数字 ,你需要的不仅仅是这些。 你需要: 获取目标“图”(图像或其他节点)的句柄。 创建一个相同大小的画布并将其添加到页面中。 使用CSS定位第1步中的目标节点。为了使这部分更容易,我建议将目标节点包装在或 。 见下文。 根据需要绘制到画布上。 例如,假设目标网页有一些您必须标记的卡哇伊图片: 这是完整脚本的一种方法: // ==UserScript== ...全局变量仅在@grant none模式下可用。 自Greasemonkey 2.0(2014年6月17日)起, @grant none模式成为默认模式。 Tampermonkey很快跟进,以保持兼容性。 如果您从未习惯使用@grant ,这似乎是最近(意外)的更改。 您现在应该始终使用@grant指令,以便您了解脚本的操作模式。 我还建议至少使用@grant GM_addStyle ,除非那些非常罕见的情况下@grant none是合适的。 这避免了意外的冲突和副作用,并且最接近于脚本用于工作的方式以及仍然 ...如果您想使用嵌入在本网站上的jQuery版本,则需要使用unsafeWindow来引用它。 换句话说:你需要在你的用户脚本的开头定义$ as unsafeWindow.$ 。 这是固定代码: // ==UserScript== // @name Rainbow DDB // @namespace Rainbow DDB // @description Change la couleur du "!" lorsqu'une DDB est en cours. // @include ...这个脚本有很多问题,让我列一下: 手动将javascript附加到DOM - 要求其他javascript资源,请使用@require例如: // @require https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js 错误的字符串和变量 - 如下所示,您使用的是getResourceText但是给它一个CSS字符串,而不是资源名称: var buttonCSS = GM_getResourceText("buttonC ...问题代码不应在任何一个浏览器中都有效,您应该在控制台中看到错误消息。 问题: document.getElementById('survey16') 没有 document.getElementById('survey16') .hide()方法 。 这是一个jQuery函数。 removeSurvey()应该是: function removeSurvey (jNode) { jNode.hide (); //-- .hide is a jQuery function. } 除了waitFor ...jQuery AJAX可以与Tampermonkey和Greasemonkey一起使用,与网页中使用jQuery相比只有一个限制。 例如,这个跨源脚本适用于Tampermonkey和Greasemonkey: // ==UserScript== // @name _Demonstrate jQuery AJAX from Tampermonkey // @include https://stackoverflow.com/questions/18546180/* // @require http ...相关文章
更多- There is no Action mapped for namespace / and action name register.
- Solr In Action
- USER AND SCHEMA
- ssh整合,action与logic之间统一接口问题
- action 线程问题。
- Hadoop in Action
- Securing Solr on Tomcat access using a user account
- user and schema(转)
- 《iBATIS实战》(iBATIS in Action)扫描版[PDF]
- 怎样利用Action线程不安全访问action次数
最新问答
更多- 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
- 如何打破按钮上的生命周期循环(How to break do-while loop on button)
- C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
- 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
- 如何并排放置两个元件?(How to position two elements side by side?)
- 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
- 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
- Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
- 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
- 电脑高中毕业学习去哪里培训
- 电脑系统专业就业状况如何啊?
- IEnumerable
linq表达式(IEnumerable linq expressions) - 如何在Spring测试中连接依赖关系(How to wire dependencies in Spring tests)
- Solr可以在没有Lucene的情况下运行吗?(Can Solr run without Lucene?)
- 如何保证Task在当前线程上同步运行?(How to guarantee that a Task runs synchronously on the current thread?)
- 在保持每列的类的同时向数据框添加行(Adding row to data frame while maintaining the class of each column)
- 的?(The ? marks in emacs/haskell and ghc mode)
- 一个线程可以调用SuspendThread传递自己的线程ID吗?(Can a thread call SuspendThread passing its own thread ID?)
- 延迟socket.io响应,并“警告 - websocket连接无效”(Delayed socket.io response, and “warn - websocket connection invalid”)
- 悬停时的图像转换(Image transition on hover)
- IIS 7.5仅显示homecontroller(IIS 7.5 only shows homecontroller)
- 没有JavaScript的复选框“关闭”值(Checkbox 'off' value without JavaScript)
- java分布式框架有哪些
- Python:填写表单并点击按钮确认[关闭](Python: fill out a form and confirm with a button click [closed])
- PHP将文件链接到根文件目录(PHP Linking Files to Root File Directory)
- 我如何删除ListView中的项目?(How I can remove a item in my ListView?)
- 您是否必须为TFS(云)中的每个BUG创建一个TASK以跟踪时间?(Do you have to create a TASK for every BUG in TFS (Cloud) to track time?)
- typoscript TMENU ATagParams小写(typoscript TMENU ATagParams lowercase)
- 武陟会计培训类的学校哪个好点?
- 从链接中删除文本修饰(Remove text decoration from links)