- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚使用 Spring MVC 3.2.3 和 Spring Security 3.2.1 将所有 xml 配置文件转换为 JavaConfig。我遇到了一些问题,其中成员用 @ElementCollection(fetch=FetchType.EAGER) 注释的实体仍然没有被提取(我的 XML 配置没有这个问题),我必须添加 @Fetch(FetchMode) .JOIN)注释。但是,我在从 Controller 检索数据时仍然遇到问题。
我的许多请求都由后端完全处理,但是当它们从我的 Controller 方法返回时,我收到错误“HTTP 状态 500 - 无法解析名称为 ' 的 servlet 中名称为 'xxx' 的 View 调度员”。问题是,我只有 3 个 View :登录、索引和管理。索引页是一个单页站点,它对 Controller 进行大量 AJAX 调用,其中大多数使用 @RequestBody 将 JSON 请求解码到 DTO,所有这些都直接使用 @ResponseBody 写入响应,并使用 Jackson 转换为 JSON。这在过去一直有效—— Controller 方法实际上应该只是 REST 端点,但现在,调度程序 servlet 希望将 View 与我的几乎所有请求(但不是全部)关联起来。我不确定如何告诉 View 解析器或调度程序 servlet 仅将索引、管理和登录视为 View ,而将其他所有内容视为简单的 REST 请求。任何帮助,将不胜感激!这是我的配置:
根配置:
@Configuration
@ComponentScan(value = "x.configuration", excludeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, value = RootConfig.class))
public class RootConfig {}
安全初始化器:
public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {}
Web 应用程序初始化器:
public class WebAppInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{
"/rest/*",
"/index.html",
"/login.html",
"/admin.html",
"/index/*",
"/login/*",
"/admin/*"
};
}
@Override
protected Filter[] getServletFilters() {
OpenEntityManagerInViewFilter openEntityManagerInViewFilter = new OpenEntityManagerInViewFilter();
openEntityManagerInViewFilter.setBeanName("openEntityManagerInViewFilter");
openEntityManagerInViewFilter.setPersistenceUnitName("HSQL");
return new javax.servlet.Filter[]{openEntityManagerInViewFilter};
}
}
Spring MVC 配置:
@Configuration
@EnableWebMvc
@EnableTransactionManagement
{@ComponentScan.Filter(type= FilterType.ANNOTATION, value=Controller.class)})
@ComponentScan(basePackages = "x.clients")
public class SpringMvcConfig extends WebMvcConfigurerAdapter {
@Bean
public InternalResourceViewResolver setupViewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
viewResolver.setViewNames(new String[] {"login", "index", "admin"});
return viewResolver;
}
@Bean
public DefaultAnnotationHandlerMapping getDefaultAnnotationHandlerMapping() {
DefaultAnnotationHandlerMapping handlerMapping = new DefaultAnnotationHandlerMapping();
handlerMapping.setAlwaysUseFullPath(true);
handlerMapping.setDetectHandlersInAncestorContexts(true);
return handlerMapping;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(getMappingJacksonHttpMessageConverter());
super.configureMessageConverters(converters);
}
@Bean
public JacksonAnnotationIntrospector getJacksonAnnotationIntrospector(){
return new JacksonAnnotationIntrospector();
}
@Bean
public ObjectMapper getObjectMapper(){
ObjectMapper mapper = new ObjectMapper();
mapper.setAnnotationIntrospector(getJacksonAnnotationIntrospector());
mapper.registerModule(new Hibernate4Module());
return mapper;
}
@Bean MappingJackson2HttpMessageConverter getMappingJacksonHttpMessageConverter(){
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
messageConverter.setObjectMapper(getObjectMapper());
return messageConverter;
}
@Bean
public DefaultConversionService getDefaultConversionService(){
return new DefaultConversionService();
}
}
Spring 安全配置:
@Configuration
@EnableWebMvcSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CustomUserDetailsService userDetailsService;
@Autowired
private CustomAuthenticationProvider customAuthenticationProvider;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
AuthenticationProvider rememberMeAuthenticationProvider = getRememberMeAuthenticationProvider();
TokenBasedRememberMeServices tokenBasedRememberMeServices = getTokenBasedRememberMeServices();
List<AuthenticationProvider> authenticationProviders = new ArrayList<AuthenticationProvider>(2);
authenticationProviders.add(rememberMeAuthenticationProvider);
authenticationProviders.add(customAuthenticationProvider);
AuthenticationManager authenticationManager = getAuthenticationManager(authenticationProviders);
http
.csrf().disable()
.headers().disable()
.addFilter(new RememberMeAuthenticationFilter(authenticationManager, tokenBasedRememberMeServices))
.rememberMe().rememberMeServices(tokenBasedRememberMeServices)
.and()
.authorizeRequests()
.antMatchers("/js/**", "/css/**", "/img/**", "/login", "/processLogin").permitAll()
.antMatchers("/index.jsp", "/index.html", "/index").hasRole("USER")
.antMatchers("/admin", "/admin.html", "/admin.jsp").hasRole("ADMIN")
.and()
.formLogin().loginProcessingUrl("/processLogin").loginPage("/login").failureUrl("/login").permitAll()
.and()
.logout().permitAll();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/js/**", "/css/**", "/img/**");
}
@Bean
public AuthenticationManager getAuthenticationManager(List<AuthenticationProvider> authenticationProviders) {
return new ProviderManager(authenticationProviders);
}
@Bean
public TokenBasedRememberMeServices getTokenBasedRememberMeServices() {
return new TokenBasedRememberMeServices("testKey", userDetailsService);
}
@Bean
public AuthenticationProvider getRememberMeAuthenticationProvider() {
return new org.springframework.security.authentication.RememberMeAuthenticationProvider("testKey");
}
protected void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
}
我的所有 Controller 方法都是通过 URL 模式/rest//访问的。
以下 Controller 仅返回枚举项的列表并且工作正常:
@Controller
@RequestMapping("/swterms")
public class SwTermsController {
@RequestMapping(value = "/getSensorTypes", method = RequestMethod.GET)
@ResponseBody
public List<String> getSensorTypes() {
List<String> sensorTypes = new ArrayList<String>();
for (SensorTypes sensorType : SensorTypes.values()){
sensorTypes.add(sensorType.getURI());
}
return sensorTypes;
}
}
该 Controller 返回 map 图层列表。我可以在 Debug模式下单步执行,一切都构建得很好,但它会产生 500 错误:
@Controller
@RequestMapping("/map")
public class MapLayerController {
@Autowired
@Resource(name="mapLayers") private List<OpenLayersMapLayer> mapLayers;
@RequestMapping(value = "/getLayerData", method = RequestMethod.GET)
@ResponseBody
public Map getMapLayers() {
Map model = new HashMap();
model.put("layers", this.mapLayers);
return model;
}
}
以下是日志的相关部分:
00:12:21,034 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.FilterChainProxy] - /rest/map/getLayerData at position 12 of 12 in additional filter chain; firing Filter: 'FilterSecurityInterceptor'
00:12:21,034 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/logout'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/js/**'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/css/**'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/img/**'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/login'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/processlogin'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/index.jsp'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/index.html'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/index'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/admin'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/admin.html'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/admin.jsp'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.util.matcher.AntPathRequestMatcher] - Checking match of request : '/rest/map/getlayerdata'; against '/js/saic/jswe/admin/**'
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] - Public object - authentication not attempted
00:12:21,035 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.FilterChainProxy] - /rest/map/getLayerData reached end of additional filter chain; proceeding with original chain
00:12:21,041 (http-bio-8084-exec-77) DEBUG [org.springframework.web.servlet.DispatcherServlet] - DispatcherServlet with name 'dispatcher' processing GET request for [/swtc/rest/map/getLayerData]
00:12:21,041 (http-bio-8084-exec-77) DEBUG [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] - Looking up handler method for path /map/getLayerData
00:12:21,042 (http-bio-8084-exec-77) DEBUG [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] - Returning handler method [public org.springframework.ui.ModelMap x.clients.controllers.MapLayerController.getMapLayers(org.springframework.ui.ModelMap)]
00:12:21,042 (http-bio-8084-exec-77) DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'mapLayerController'
00:12:21,042 (http-bio-8084-exec-77) DEBUG [org.springframework.web.servlet.DispatcherServlet] - Last-Modified value for [/swtc/rest/map/getLayerData] is: -1
00:12:44,844 (http-bio-8084-exec-77) DEBUG [org.springframework.web.servlet.DispatcherServlet] - Could not complete request
javax.servlet.ServletException: Could not resolve view with name 'map/getLayerData' in servlet with name 'dispatcher'
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1190)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:180)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
00:12:44,902 (http-bio-8084-exec-77) DEBUG [org.springframework.security.web.context.SecurityContextPersistenceFilter] - SecurityContextHolder now cleared, as request processing completed
最佳答案
尝试删除此行:
viewResolver.setViewNames(new String[] {"login", "index", "admin"});
这导致 viewResolver 忽略 ["login","index","admin"] 中不存在的所有内容
摘自文档:
setViewNames
public void setViewNames(String[] viewNames) Set the view names (or name patterns) that can be handled by this ViewResolver. View names can contain simple wildcards such that 'my*', '*Report' and 'Repo' will all match the view name 'myReport'.
关于java - Spring 3.2 - 切换到 JavaConfig 后无法解析 View 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22285234/
我正在尝试创建一个简单的小部件,它只有一个切换按钮,但我的 AVD 模拟器上不断出现错误,提示“加载小部件有问题”。 似乎是因为我在小部件布局中添加了开关或切换按钮。 为了测试它,我创建了一个新的空
我正在使用 GLFW 进行键盘输入,但处理速度太快,因此我的 bool 开关在一次按下时被更改了 10 次,因为输入是每一帧处理的。我只需要按一次空格键即可切换状态。我当前的代码如下: if (glf
我希望完成一个相当简单的任务(我希望!) 我有两个 div 标签和一个 anchor 标签,像这样: forgot password? 我希望使用 anchor 标记在两个 div 标记之间切换,
我已经尝试了几种不同的方法,但似乎无法弄清楚如何将 span 的类从“die2”切换到“die3”以及将 div 的显示样式从“block”切换到“none”。有人有任何解决方案吗? (基本上当页面加
我正在尝试制作一个交换小部件,该小部件显示两个不同的文本。激活时,它下面显示一个TextField,顶部是不可见的,而禁用时它上面显示一个Text,而底部是不可见。但是它没有在屏幕上显示任何内容,只是
我有一个简单的 Angular 应用程序,它使用两个模板和 Controller 。放置两个按钮来切换 View 。它们调用在控件内定义的函数,该函数使用 window.location='' 来切换
我想要一个 div 切换它的类(切换)onclick,然后再次恢复到原来的类 onclick 我的代码是: function myfunc() { //the code over here
我确信这是一个常见问题,我已经尝试了该网站上的许多线程来尝试解决我的问题,但我似乎无法使其正常工作。基本上我有一个子菜单,当父菜单悬停在其上时需要显示该子菜单,但是如果您在加载完成之前将鼠标从菜单项上
我制作了一个 JavaScript 函数来隐藏单击按钮时的链接及其在该函数中的工作 function toggle() { var ele = document.getElement
我正在使用我在 JS fiddle 上找到的这个脚本:http://jsfiddle.net/Q4PUw/2/ 当我点击切换链接时,它会切换框并显示它,但是,它会跳回页面顶部,然后我必须再次向下滚动才
我正在 GoDaddy 上的共享服务器 IP 上构建 Web 应用程序。该应用程序与验证请求服务器 IP 的房地产 API 进行对话。问题是在 GoDaddy 上,我们的 IP 被列为 X,但它实际上
我在 jquery 中有一个简单的脚本,可以在 时切换 div(显示和隐藏)。被点击(我正在使用 Bootstrap )。 HTML: Advanced search This is t
我有两个 NSWindows,其中都有一个 NSPanel。我想在按下按钮时切换窗口。如何才能做到这一点?我不再需要旧窗口,所以我只想显示新窗口。 最佳答案 要聚焦第二个窗口,只需调用: [windo
我尝试在单击切换时将选项添加到选择菜单,但如果再次单击(取消选择),则可以将其删除。到目前为止,我可以在单击时向选择菜单添加单个值,但无法将其删除(切换添加切换删除) 这是我的代码: HTML
我正在尝试隐藏所属行。例如,如果您单击“子标题 1”,则将仅隐藏项目 1、项目 2 和项目 3 行。 示例: title Sub Title 1
似乎无法让它为我工作,任何人都可以为我提供帮助吗? http://codepen.io/anon/pen/kABjC 这应该根据点击打开和关闭文本部分,它采用 ID #,它只是一个数字(1,2,3,4
我正在从一个文件复制到另一个文件,并且我可以看到 Excel 在源文件和目标文件之间切换(如闪烁)。我希望宏从源复制并粘贴到目标,而不在文件之间切换(我不想闪烁)。 这里我得到了我的 Excel VB
我正在尝试制作一个带切换功能的 Accordion ,现在看起来效果很好。作为 javascript 的新手,我希望得到一些帮助,那就是它的组合方式。 http://jsfiddle.net/z3wW
我正在尝试制作一个小脚本,其中屏幕将每 100 毫秒随机更改一次背景颜色,您可以通过按一个按钮来打开和关闭它。我可以让它开始,但我不能让它停止。 这是切换的主要代码: var on = -1; fun
我确信这里应该已经涵盖了这一点,但我一直无法找到专门涉及此问题的问题。 我在一个页面中有 2 个 div,就像这样...... ...content... ...content...
我是一名优秀的程序员,十分优秀!