Struts2注解配置的问题

最近做项目发现一个关于Struts2注解的问题.
假设在com.xxx.web.action包下配置了没有配置xml, 也没有配置注解, 这些类也可以作为action类访问.
如果包改为com.xxx.web.action.yyy, 只有配置注解才能访问.
然后, 将多个action抽取了一个公共的action类, 配上注解, 然后把这些action子类的注解删掉, 完全没有问题, 依旧可以访问, 但是这些注解的源代码中没有写可以被子类继承的inherited啊, 为什么子类就可以成为Action类了呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于Struts2注解配置json问题。
struts2的配置文件: ``` <action name="subjectAction" class="com.H1.action.SubjectAction" method="doSubject"> <result type="json" > <param name="root">resultObj</param> </result> </action> ``` ``` ``` 其中:**“ ``` <param name="root">resultObj</param> ``` ”**这句话怎样在注解里面写出来? java注解: .... @Action(value="subjectAction", results={@Result(type="json")}, public String doSubject(){ System.out.println("进入了subject"); List view = new ArrayList(); Map<String, Object> json = new HashMap<String, Object>(); json.put("id", "测试数据"); view.add(json); resultObj=JSONArray.fromObject(view); System.out.println(resultObj); return SUCCESS; } 这个java代码已经把配置文件的翻译出来了,就差不知道怎样配root,求大神指导下
struts注解配置@namespace
struts注解配置@namespace,每次在项目后加上namespace空间名找不到路径报404
spring.xml中配置struts2的注解方式拦截器
我现在的配置文件就一个(spring.xml),想用注解方式实现struts2的拦截器功能。想不增加struts2的配置文件,只在spring.xml中添加配置,应该怎么写
关于使用struts2注解和sping整合的问题。
如题,struts2与spring整合后,struts2使用注解的方式,struts.xml加入如下配置信息: ``` <constant name="struts.convention.action.suffix" value="Action"/> <constant name="struts.convention.package.locators" value="action"/> <constant name="struts.convention.result.path" value="/WebRoot"/> <constant name="struts.objectFactory" value="spring" /> ``` 那么Action类中: ``` @Component @Scope("prototype") @Namespace("/u") @Results({ @Result(name = "success",location = "/Success.jsp"), @Result(name = "fail",location = "/Fail.jsp"), }) public class UserAction extends ActionSupport implements ModelDriven { ... ``` 发现spring注解加不加都能正常运行。 我想知道,请问有spring注解和没spring注解这两种情况下,action的创建分别是由谁管理创建的呢? 先谢谢大家
struts2 注解开发问题!!!!!!!!
使用注解的,之前好像还没问题来着...现在不知道问题出在哪里了 action ```package com.sg.action; import javax.annotation.Resource; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.Result; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport; import com.sg.service.ArtileService; @Controller @Namespace("") @Action(value="test" ,results={ @Result (name="success" ,location="./jsp/top.jsp"), @Result (name="fail" ,location="./jsp/top.jsp") }) public class aritcleAction extends ActionSupport{ @Resource ArtileService as; public String execute(){ System.out.println("aaaa"); return"fail"; } } ``` jsp ```<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <s:form action="test"> <s:submit></s:submit> </s:form> </body> </html> ``` struts.xml ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <!-- 请求参数的编码方式--> <constant name="struts.i18n.encoding" value="UTF-8"/> <!-- 指定被struts2处理的请求后缀类型。多个用逗号隔开--> <constant name="struts.action.extension" value="action,do,html"/> <!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开 --> <constant name="struts.configuration.xml.reload" value="true"/> <!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开 --> <constant name="struts.devMode" value="true"/> <!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 指定由spring负责action对象的创建 <constant name="struts.objectFactory" value="spring" /> --> <!-- 是否开启动态方法调用--> <constant name="struts.enable.DynamicMethodInvocation" value="false"/> </struts> ``` 1.页面提交的时候访问路径http://localhost:8080/sg/jsp/test,后面的.action怎么不见了? 2.http://localhost:8080/sg/jsp/test.action访问就下面的报错了 There is no Action mapped for namespace /jsp and action name test. - [unknown location] namespace("")默认命名空间好像就不会因为命名空间的问题而找不到了吧,namespace("/jsp")试了,不行 所以是这个注解基本没有生效的意思吗? 问题出在哪里呢........?? 补充一个web.xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 加载spring配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:applicationContext.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!-- struts2 的配置 --> <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> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> ```
struts2,convention注解的应用
现在项目需要,把struts的注解运用起来,调试老半天结果访问的时候提示no action mapping and action name login,, 我只是用了最简单的loginAction extends actionSupport,如果谁用到过,麻烦写个最简单的例子,包含struts的配置文件,web.xml的配置文件,以及action的写法,望大家不吝赐教,感激不尽
关于是struts2配置json注解问题
这是我的一段注解: @ParentPackage("json-default") @Namespace("/") public class SubjectAction extends BaseAction{ private JSONArray resultObj; @Action(value="subject", results={@Result(type="json")}, params={"contentType", "text/html"}) public String doSubject(){ System.out.println("进入了subject"); List view = new ArrayList(); Map<String, Object> json = new HashMap<String, Object>(); json.put("id", "测试数据"); view.add(json); resultObj=JSONArray.fromObject(view); return SUCCESS; } public JSONArray getResultObj() { return resultObj; } public void setResultObj(JSONArray resultObj) { this.resultObj = resultObj; } } 其中doSubject的方法上面的注解 :params={"contentType", "text/html"} 这句是什么意思?我试过把这段去了,页面也能收到json,或者把"contentType" 改为“resultObj”也能。这句话到底什么意思? 第二:我也页面接收到的json是这样子的:{"resultObj":[{"id":"测试数据"}]} 如果我想要json返回显示为:[{"id":"测试数据"}] 该怎么搞? 在控制台打印 resultObj 是[{"id":"测试数据"}] ;到了页面就多了resultObj 了 ,怎么搞啊?求指导
关于Struts2的可能比较基础的问题
<p> </p> <p>最近做Struts2开发遇到两个问题,第一是在使用Struts2注解配置拦截器的时候,发现自定义拦截器无法通过注解实现,也就是除了@InterceptorRef和@InterceptorRefs就没有别的注解可用了,但是我用的是convention-plugin 2.1.6 不知道是不是我的问题。</p> <p> </p> <p>另外一个,就是在做表单的时候,有时候需要修改数据库中某个实体的资料,比如就说一个用户的资料,有姓名,年龄或是住址,在修改的时候希望有个表单能先从数据库中把原先的资料给弄出来,然后再修改,其实也就是spring中AbstractFormController中的formBackingObject()方法的作用,多方探查没有找寻到好的方法,希望能有熟悉Struts2的朋友指点一下迷津。</p>
struts2注解url没跳转到action里的方法,没报错也没跳转
我补下图片: ![图片说明](https://img-ask.csdn.net/upload/201509/21/1442781387_310218.png) package com.AppServer.action; import javax.annotation.Resource; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ExceptionMapping; import org.apache.struts2.convention.annotation.ExceptionMappings; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.stereotype.Service; import com.AppServer.bean.User; import com.AppServer.dao.UserDAO; import com.AppServer.service.UserService; import com.demo.interceptor.MethodCacheInterceptor; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; @Controller @ParentPackage("struts-default") @Namespace(value = "msgAction") @ExceptionMappings({ @ExceptionMapping(exception = "java.lange.RuntimeException", result = "error") }) public class MsgAction extends ActionSupport { private String username; private String password; @Resource private UserService userService; @Action(value = "msg" , results = { @Result(name = "success", location = "/success.jsp"), @Result(name = "failure", location = "/failure.jsp"), @Result(name = "error", location = "/login.jsp")}) //获取用户信息 public String getInfo() { System.out.println("进来玩"); return SUCCESS; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } url访问如下:http://127.0.0.1:8080/AppServer_1.1/msgAction/msg.do 访问之后没报错,没进去getInfo这个方法 struts2.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> <!-- 指定Web应用的默认编码,相当于调用request的setCharacterEncoding方法 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 当Struts2的配置文件修改后,系统是否自动重新加载配置文件,默认值为false(生产环境下使用),开发阶段最好打开 --> <constant name="struts.configuration.xml.reload" value="true" /> <!-- 开发模式下使用,这样可以打印出更详细的日志信息 --> <constant name="struts.devMode" value="true" /> <!-- 默认的视图主题 --> <constant name="struts.ui.theme" value="simple" /> <!-- 把Action对象交给Spring创建和管理 --> <constant name="struts.objectFactory" value="spring" /> <!-- Struts2处理的请求后缀,默认值是action --> <constant name="struts.action.extension" value="do" /> <!-- 国际化资源文件 <constant name="struts.custom.i18n.resources" value="globalMessages" /> --> <package name="msg" extends="struts-default"> <default-action-ref name="indexPage" /> <global-results> <result name="exceptionPage">/error/exceptionPage.jsp</result> </global-results> <global-exception-mappings> <exception-mapping result="exceptionPage" exception="java.lang.Exception" /> </global-exception-mappings> <action name="indexPage"> <result>/login.jsp</result> </action> <!-- <action name="msg" method="getInfo" class="com.AppServer.action.MsgAction"> <result name="success">/success.jsp</result> <result name="failure">/failure.jsp</result> <result name="error">/login.jsp</result> </action> --> </package> </struts> application.xml: <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd" default-autowire="byName" default-lazy-init="true"> <!-- 说明:下面有的Bean配置提供了多种方案,请根据需要采用某一种(别忘了注释掉其他同类方案) --> <!-- 自动扫描Spring注解配置 并保证@Required,@Autowired的属性被注入--> <context:component-scan base-package="com" /> <!-- 自动加载属性配置文件 --> <context:property-placeholder location="classpath:jdbc.properties" /> <!-- 配置数据源:方法一,使用C3P0方式(推荐) --> <!-- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" --> <!-- destroy-method="close" --> <!-- p:driverClass="${jdbc.driverClassName}" --> <!-- p:jdbcUrl="${jdbc.url}" --> <!-- p:user="${jdbc.username}" --> <!-- p:password="${jdbc.password}" /> --> <!-- <context:property-placeholder location="classpath:jdbc.properties"/> --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <!-- property池启动时的初始值 --> <property name="password" value="${jdbc.password}"/> <!-- 连接name="initialSize" value="${initialSize}"/>--> <property name="initialSize" value="1"/> <!-- 连接池的最大值 --> <property name="maxActive" value="500"/> <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> <property name="maxIdle" value="2"/> <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> <property name="minIdle" value="1"/> </bean> <!-- 配置数据源:方法二,使用DBCP方式(不推荐) --> <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}" /> --> <!-- 配置数据源:方法三,使用JNDI方式 --> <!-- <jee:jndi-lookup id="dataSource" jndi-name="${jndi.name}" /> --> <!-- 配置Hibernate的数据源代理工厂:方法一,使用p属性通配符,按文件名搜索匹配的映射文件 --> <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" p:dataSource-ref="dataSource" > <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop> <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop> <prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}</prop> </props> </property> 加载hibernate的jpa注解形式实体 <property name="packagesToScan"> <list> <value>com.xmm.demo.domain*</value> </list> </property> </bean> --> <!-- 配置Hibernate的数据源代理工厂:方法二,使用list集合,按文件名搜索匹配的映射文件 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" p:dataSource-ref="dataSource"> <property name="mappingLocations"> <list> <value>classpath*:/com/**/*.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop> <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop> <prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}</prop> </props> </property> </bean> <!-- 配置Hibernate的数据源代理工厂:方法三,使用p属性通配符,按目录搜索映射文件 --> <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" p:dataSource-ref="dataSource" p:mappingDirectoryLocations="classpath*:/com/**/domain"> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop> <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop> <prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}</prop> </props> </property> </bean> --> <!-- 配置Hibernate的数据源代理工厂:方法四,使用hibernate.cfg.xml --> <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" p:dataSource-ref="dataSource" p:configLocation="classpath:hibernate.cfg.xml"> </bean> --> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory" /> <!-- 配置声明式事务:方法一,在Service实现类或者public实现方法上使用注解@Transactional,则此类或方法就会启用事务机制 --> <!-- <tx:annotation-driven transaction-manager="transactionManager" /> --> <!-- 配置声明式事务:方法二,使用tx/aop命名空间的配置(其实还有方法三,由于快要过时不推荐使用了,这里就不给出方法三的配置了) --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="edit*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="new*" propagation="REQUIRED" /> <tx:method name="set*" propagation="REQUIRED" /> <tx:method name="remove*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="change*" propagation="REQUIRED" /> <tx:method name="get*" propagation="REQUIRED" read-only="true" /> <tx:method name="find*" propagation="REQUIRED" read-only="true" /> <tx:method name="load*" propagation="REQUIRED" read-only="true" /> <tx:method name="search*" propagation="REQUIRED" read-only="true" /> <tx:method name="*" propagation="REQUIRED" read-only="true" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="mypointcut" expression="execution(* com.**.service..*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="mypointcut" /> </aop:config> <!-- 下面三个Bean的配置可有可无,但配置后用处更大,通常用于BaseDao类、其他Dao类或特殊工具类中 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate" p:sessionFactory-ref="sessionFactory" /> <bean id="hibernateDaoSupport" class="org.springframework.orm.hibernate4.support.HibernateDaoSupport" p:hibernateTemplate-ref="hibernateTemplate" abstract="true"/> <bean id="sessionFactoryUtils" class="org.springframework.orm.hibernate4.SessionFactoryUtils" abstract="true"/> </beans> tomcat6.0:服务器运行正常: 九月 21, 2015 4:22:24 上午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.7.0\bin;E:\tomcat6\bin 九月 21, 2015 4:22:25 上午 org.apache.coyote.http11.Http11Protocol init 信息: Initializing Coyote HTTP/1.1 on http-8080 九月 21, 2015 4:22:25 上午 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 516 ms 九月 21, 2015 4:22:25 上午 org.apache.catalina.core.StandardService start 信息: Starting service Catalina 九月 21, 2015 4:22:25 上午 org.apache.catalina.core.StandardEngine start 信息: Starting Servlet Engine: Apache Tomcat/6.0.41 九月 21, 2015 4:22:25 上午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory AppServer_1.1 九月 21, 2015 4:22:25 上午 org.apache.catalina.loader.WebappClassLoader validateJarFile 信息: validateJarFile(E:\tomcat6\webapps\AppServer_1.1\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 九月 21, 2015 4:22:26 上午 org.apache.catalina.core.ApplicationContext log 信息: Set web app root system property: 'webapp.root' = [E:\tomcat6\webapps\AppServer_1.1\] 九月 21, 2015 4:22:26 上午 org.apache.catalina.core.ApplicationContext log 信息: Initializing log4j from [classpath:log4j.properties] 九月 21, 2015 4:22:26 上午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext 九月 21, 2015 4:22:34 上午 org.apache.coyote.http11.Http11Protocol start 信息: Starting Coyote HTTP/1.1 on http-8080 九月 21, 2015 4:22:34 上午 org.apache.jk.common.ChannelSocket init 信息: JK: ajp13 listening on /0.0.0.0:8009 九月 21, 2015 4:22:34 上午 org.apache.jk.server.JkMain start 信息: Jk running ID=0 time=0/23 config=null 九月 21, 2015 4:22:34 上午 org.apache.catalina.startup.Catalina start 信息: Server startup in 9364 ms 测试定时任务:2015-09-21 04:30:00:074 测试定时任务:2015-09-21 04:40:00:004 url访问地址:http://127.0.0.1:8080/AppServer_1.1/msgAction/msg.do 没有进去action的getinfo方法,这是为什么?而且也没有任何的报错!!!!!!!!!!!
struts1 +spring 注解管理Action
struts1与spring整合,用注解管理Action可以吗,不想把访问的path配置在struts-config.xml或spring的配置文件,路径的匹配用注解实现。 实现类的实例化什么的都是用的注解,都是可以的,就是action不知道用什么注解还是不可以使用。
Struts和spring的整合问题:action如何配置?
ssh整合问题: 把Action交给spring管理,那么Struts.xml的action如何配置? 比如:<action name="user" class="userAction"> 马士兵视频上说把name配成和Action类的component注解的名字一致? 可是在网上看的资料说把class配成和Action类的component注解的名字一致 究竟谁是对的?
struts注解版多个namespace 的问题
![图片说明](https://img-ask.csdn.net/upload/201508/02/1438474067_103111.jpg) ![图片说明](https://img-ask.csdn.net/upload/201508/02/1438474082_854092.png) ![图片说明](https://img-ask.csdn.net/upload/201508/02/1438474092_915343.png) ![图片说明](https://img-ask.csdn.net/upload/201508/02/1438474046_159329.png) 都是相同的写法,struts.xml中配置感觉没错误,为什么一个可以找到另一个就提示找不到action了~~~~~~麻烦那位大大看看谢谢了
struts2 当编译后,tomcat reload 保错
struts2的部署启动一切正常 但当程序有所改动。tomcat会自动reload后, 会报Unable to load configuration。究竟是什么原因 在google搜索到同类型的问题,http://marc.info/?l=struts-user&m=126713696419558,但貌似没有解决到。 究竟是什么回事?我用的Struts2 Annotation 注解配置
Struts2中,采用注解的方式配置json,总是出现下载框,郁闷之极!请帮忙!
[code="java"] import java.awt.Image; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import javax.imageio.ImageIO; import org.apache.struts2.ServletActionContext; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.json.annotations.JSON; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") @ParentPackage("json-default") public class FileUploadAction extends ActionSupport { private File file; private String fileFileName; private String fileFileContentType; private String message = "你已成功上传文件"; private Integer width = 0; private Integer height = 0; public File getFile() { return file; } public void setFile(File file) { this.file = file; } public String getFileFileName() { return fileFileName; } public void setFileFileName(String fileFileName) { this.fileFileName = fileFileName; } public String getFileFileContentType() { return fileFileContentType; } public void setFileFileContentType(String fileFileContentType) { this.fileFileContentType = fileFileContentType; } @JSON public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } @JSON public Integer getWidth() { return width; } public void setWidth(Integer width) { this.width = width; } @JSON public Integer getHeight() { return height; } public void setHeight(Integer height) { this.height = height; } @Action(value = "uploadPic", results = { @Result(name = "success", type = "json") }, params = { "contentType", "text/html" }) public String uploadPic() { String path = ServletActionContext.getServletContext().getRealPath("/upload"); try { File f = this.getFile(); if (this.getFileFileName().endsWith(".exe")) { message = "对不起,你上传的文件格式不允许!!!"; return INPUT; } FileInputStream inputStream = new FileInputStream(f); FileOutputStream outputStream = new FileOutputStream(path + "/" + this.getFileFileName()); byte[] buf = new byte[1024]; int length = 0; while ((length = inputStream.read(buf)) != -1) { outputStream.write(buf, 0, length); } inputStream.close(); outputStream.flush(); message = fileFileName; File imageFile = new File(path + "/" + fileFileName); Image image = ImageIO.read(imageFile); width = image.getWidth(null); height = image.getHeight(null); } catch (Exception e) { e.printStackTrace(); message = "对不起,文件上传失败了!!!!"; } return SUCCESS; } } [/code] 文件可以上传成功。 客户端代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Struts2 、jquery之ajaxfileupload异步上传插件</title> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/ajaxfileupload.js"></script> <script type="text/javascript"> function ajaxFileUpload() { $.ajaxFileUpload ( { url:'uploadPic.gp',//用于文件上传的服务器端请求地址 secureuri:false,//一般设置为false fileElementId:'file',//文件上传空间的id属性 <input type="file" id="file" name="file" /> dataType: 'json',//返回值类型 一般设置为json success: function (data, status) //服务器成功响应处理函数 { //从服务器返回的json中取出message中的数据,其中message为在struts2中action中定义的成员变量 $("#pic").val(data.message); $("#width").val(data.width); $("#height").val(data.height); if(typeof(data.error) != 'undefined') { if(data.error != '') { alert(data.error); } else { alert(data.message); } } }, error: function (data, status, e)//服务器响应失败处理函数 { alert(e); } } ) return false; } </script> </head> <body> <p align="center">Struts2 、jquery之ajaxfileupload异步上传插件</p> <table align="center" border="1" cellpadding="0" cellspacing="0"> <tr> <td>图片地址:</td> <td> <input type="text" name="pic" id="pic" /> <br/> <input type="file" id="file" name="file" /> <input type="button" value="上传" onclick="return ajaxFileUpload();"> </td> </tr> <tr> <td>图片宽度:</td> <td> <input type="text" name="width" id="width" /> </td> </tr> <tr> <td>图片高度:</td> <td> <input type="text" name="height" id="height" /> </td> </tr> </table> </body> </html> 总是执行action以后,返回的下载框,郁闷呀,请帮忙啦!我用是Struts2.1.8.1,自带的插件,采用 配置文件的形式可以成功,也就是这样的可以成功 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="struts2" extends="json-default"> <action name="fileUploadAction" class="com.jackie.ajaxfile.action.AjaxFileUploadAction"> <result type="json" name="success"> <param name="contentType"> text/html </param> </result> <result type="json" name="error"> <param name="contentType"> text/html </param> </result> </action> </package> </struts> 注解的不能成功。
struts2.5启动保错如下请问大佬们怎么解决?
刚开始接触struts2,今天使用注解配置,然后就报这个错,注解配置图在下面。请问大佬们怎么解 ``` [15:49:58:302] [ERROR] - org.apache.struts2.convention.DefaultClassFinder.<init>(DefaultClassFinder.java:95) - Unable to read class [com.User.action.UserAction] java.lang.IllegalArgumentException: null at org.objectweb.asm.ClassReader.<init>(Unknown Source) ~[asm-5.2.jar:5.2] at org.objectweb.asm.ClassReader.<init>(Unknown Source) ~[asm-5.2.jar:5.2] at org.objectweb.asm.ClassReader.<init>(Unknown Source) ~[asm-5.2.jar:5.2] at org.apache.struts2.convention.DefaultClassFinder.readClassDef(DefaultClassFinder.java:461) ~[struts2-convention-plugin-2.5.20.jar:2.5.20] at org.apache.struts2.convention.DefaultClassFinder.<init>(DefaultClassFinder.java:93) [struts2-convention-plugin-2.5.20.jar:2.5.20] at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:395) [struts2-convention-plugin-2.5.20.jar:2.5.20] at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:377) [struts2-convention-plugin-2.5.20.jar:2.5.20] at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:333) [struts2-convention-plugin-2.5.20.jar:2.5.20] at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52) [struts2-convention-plugin-2.5.20.jar:2.5.20] at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:206) [struts2-core-2.5.20.jar:2.5.20] at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) [struts2-core-2.5.20.jar:2.5.20] at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957) [struts2-core-2.5.20.jar:2.5.20] at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463) [struts2-core-2.5.20.jar:2.5.20] at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496) [struts2-core-2.5.20.jar:2.5.20] at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73) [struts2-core-2.5.20.jar:2.5.20] at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61) [struts2-core-2.5.20.jar:2.5.20] at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270) [catalina.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251) [catalina.jar:9.0.22] at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102) [catalina.jar:9.0.22] at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4530) [catalina.jar:9.0.22] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5169) [catalina.jar:9.0.22] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.22] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) [catalina.jar:9.0.22] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) [catalina.jar:9.0.22] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.22] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) [?:?] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) [catalina.jar:9.0.22] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) [catalina.jar:9.0.22] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.22] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) [catalina.jar:9.0.22] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) [catalina.jar:9.0.22] ``` ![图片说明](https://img-ask.csdn.net/upload/201910/22/1571730793_265729.png)
关于struts1多模块与spring注解
我使用switchAction来处理多模块请求, 想使用spring的注解来管理action, 在spring的配置文件中管理action是可以的,但是使用注解的则不行,不能创建action, 不知道是不是我的配置有问题,或者是有些什么其他的问题,希望哪位能帮我看看,解答一下 我的相关文件内容如下: web.xml [code="xml"] <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts/struts-config.xml</param-value> </init-param> <init-param> <param-name>config/demo</param-name> <param-value>/WEB-INF/struts/struts-config-demo.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> [/code] struts-config.xml默认模块配置文件 [code="xml"] <action-mappings > <action path="/toModul" type="org.apache.struts.actions.SwitchAction"/> <action path="/demo"> <forward name="list" path="/WEB-INF/demo/demo.jsp"/> </action> </action-mappings> [/code] struts-config-demo.xml [code="xml"] <action-mappings > <action path="/demo"> <forward name="list" path="/../WEB-INF/demo1/demo1.jsp"/> </action> </action-mappings> [/code] Demo1Action [code="java"] @Controller("/demo1/demo") @Scope("prototype") public class Demo1Action extends DispatchAction { public ActionForward demo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { request.setAttribute("message", "这是Demo1模块"); return mapping.findForward("list"); } [/code] DemoAction [code="java"] @Controller("/demo") @Scope("pototype") public class DemoAction extends DispatchAction { public ActionForward demo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { request.setAttribute("message", "这是Demo模块"); return mapping.findForward("list"); } } [/code] applicationContext.xml [code="xml"] <!-- 这是我注释后的配置,如果不使用注解,使用这样的配置则是可以的 <bean name="/switch" class="org.apache.struts.actions.SwitchAction"/> <bean name="/demo/demo" class="com.wwq.web.demo1.action.Demo1Action"/> <bean name="/demo" class="com.wwq.web.demo.action.DemoAction"/> --> [/code] [b]问题补充:[/b] 忘了补充一点,我使用的是插件是 [code="xml"] <controller> <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/> </controller> [/code] [quote] http://reack.itpub.net/post/1065/22126 蔡华江 (高级程序员) 2009-10-20 采纳为答案 举报作弊 [/quote] 谢谢蔡华江的回答,这个网址我刚才看过了,里面说的是不使用注解的方式来进行配置的,如果我不使用注解,而使用配置文件的话,是没有问题的,但是使用注解,再使用switchAction就不行了,我不知道是为什么, 报的错误是 HTTP Status 500 - No action instance for path /demo could be created 下面是我在jsp页面上写的访问路径 [code="html"] <a href="toModul.do?prefix=&page=/demo.do?action=demo">Demo</a> <a href="toModul.do?prefix=/demo&page=/demo.do?action=demo">Demo1</a> [/code] [b]问题补充:[/b] [quote]sunlightcs (高级程序员) 2009-10-22 [/quote] 谢谢你,你让我成功了一半,默认模块是没有问题了,但是我的那个demo子模块却不行,不知道为什么,希望能帮我解答,谢谢 [b]问题补充:[/b] [quote] 引用 @Controller("/demo1/demo") @Scope("prototype") public class Demo1Action extends DispatchAction { public ActionForward demo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { request.setAttribute("message", "这是Demo1模块"); return mapping.findForward("list"); } 说明一点,不要@Controller("/demo1/demo") 这样写,"/demo1/demo"这是这个ACTION交给Spring管理时BEAN的名字,不是路径,最好这样写:@Controller("demo1Action") sunlightcs (高级程序员) 2009-10-23 采纳为答案 举报作弊 [/quote] 谢谢你的回答,我想再问一下: 如果说这里不写成/demo1/demo,难道这里不是需要和struts配置文件中的相匹配吗?在配置文件中配置的话,访问路径就是bean的name属性值,按说,这里应该也是没有错啊,还有,如果我这里不写成/demo1/demo,而直接写成/demo的话就会与默认模块的访问路径相冲突,刚试了一下,改为/demo1也不行,还是没有action实例被创建, [b]问题补充:[/b] [quote] sunlightcs (高级程序员) [/quote] 你说的是struts2.struts1不是这样的
struts的Action中使用spring的@Transactional注解事务出错
使用spring的注解式事务配置, 在action的方法中直接使用事务遇到的问题. <br /> <br />例如: 在testAction 中有两个方法 <br /><pre name="code" class="java"> public class testAction extends BaseAction{ @Transactional public String test1() throws Exception { dosomething(); } public String test2() throws Exception { dosomething(); } } </pre> <br />struts.xml配置 <br /><pre name="code" class="java"> &lt;action name="test_*" class="testAction" method="{1}"&gt; &lt;result&gt;test.ftl&lt;/result&gt; &lt;/action&gt; </pre> <br />只要在上例testAction两个方法任意一个加上@Transactional注解, 用test_test1.do访问时就会报错java.lang.NoSuchMethodException: $Proxy9.test1(). <br />访问未配置@Transactional的方法也一样, 例如test_test2.do也会一样报错java.lang.NoSuchMethodException: $Proxy9.test2().&nbsp; <br />大概知道是因为配置事务后产生代理, 但是为什么产生的代理实例会找不到方法?? <br/><strong>问题补充</strong><br/>呵呵, 多谢楼上的回复, 确实是这样. 配置proxy-target-class="true"就行了, 非常感谢...
【小白】Struts+Sping+Hibernate 注解自动装配空指针问题
写了个登录方法,然而调用登录方法时发现该对象竟然没注入进来,搞了半天也没好,只能来请教大神了。 以下是我项目的总体结构 ![图片说明](https://img-ask.csdn.net/upload/201507/08/1436285324_808544.png) 这里是登录实现方法里的注解 ![图片说明](https://img-ask.csdn.net/upload/201507/08/1436285459_282702.png)该类继承的MyDao类的代码: ![图片说明](https://img-ask.csdn.net/upload/201507/08/1436285520_775100.png) 业务层里的代码: ![图片说明](https://img-ask.csdn.net/upload/201507/08/1436285582_175471.png) spring配置文件里的配置: ![图片说明](https://img-ask.csdn.net/upload/201507/08/1436285637_229849.png) Struts Action里的代码(错误就报在这里,空指针异常): ![图片说明](https://img-ask.csdn.net/upload/201507/08/1436285710_531357.png) web配置我也贴上了: ![图片说明](https://img-ask.csdn.net/upload/201507/08/1436285828_748758.png) 麻烦各位大大帮忙了
请问Struts2的Action如何交给spring来管理啊(注解方式)
我的Action是 <package name="person" namespace="/person" extends="struts-default"> <action name="action_*" class="cn.itcast.web.PersonAction" method="{1}"> <result name="list">/WEB-INF/page/personlist.jsp</result> </action> </package> 我知道可以在action类中加注解@Component(value="action_*"),这里value等于Action的名字,可是使用通配符的办法来配置Action的话,所有的Action的名字都是action_*,不知该如何解决这个问题,不知道我有没有把问题描述清楚
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
我在支付宝花了1分钟,查到了女朋友的开房记录!
在大数据时代下,不管你做什么都会留下蛛丝马迹,只要学会把各种软件运用到极致,捉奸简直轻而易举。今天就来给大家分享一下,什么叫大数据抓出轨。据史料证明,马爸爸年轻时曾被...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
使用 Python 和百度语音识别生成视频字幕
文章目录从视频中提取音频根据静音对音频分段使用百度语音识别获取 Access Token使用 Raw 数据进行合成生成字幕总结 从视频中提取音频 安装 moviepy pip install moviepy 相关代码: audio_file = work_path + '\\out.wav' video = VideoFileClip(video_file) video.audio.write_...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
立即提问