SSH整合后,在JSP页面的图片不能显示

SSH整合后,在JSP页面的图片不能显示,图片的路径使用绝对的路径,没有错,我将JSP放到一个单独的WEB项目下可以显示出来,放在整合的项目下就显示不出来,大神们这是为什么呀,完全不知道原因呀,

2个回答

静态资源是不是被拦截了?

楼上说的对,有可能被拦截了。 你可以debug一下或者 抓包看看

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ssh整合在action中取不到jsp页面的数据的问题
findByIdbook.action?id=%{#ub.id} 能取到值 id是个属性 findByIdbook.action?uBook.id=%{#ub.id} 这种取不到值 uBook 是个类
ssh整合 Action中的MAP到Jsp页面
# 这是Action package ssh.www.actions; import java.util.Map; import org.apache.struts2.interceptor.RequestAware; import com.opensymphony.xwork2.ActionSupport; import ssh.www.service.EmployeeService; public class EmployeeAction extends ActionSupport implements RequestAware{ private static final long serialVersionUID = 1L; private EmployeeService employeeService; public void setEmployeeService(EmployeeService employeeService) { this.employeeService = employeeService; } public String list(){ System.out.println("List Action"); request.put("aa", employeeService.getAll()); return "list"; } private Map<String,Object> request; @Override public void setRequest(Map<String, Object> arg0) { this.request = arg0; } } 这是JSP <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!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>Insert title here</title> </head> <body> <h4>employee list page</h4> <!-- if判断语句 --> <s:if test="#request.employee != null || #request.employee.size() != 0"> 没有任何员工信息 </s:if> <s:else> <table border="1" cellpadding="10" cellspacing="0"> <tr> <td>ID</td> <td>LASTNAME</td> <td>EMAIL</td> <td>BIRTH</td> <td>CREATETIME</td> <td>DEPT</td> </tr> <s:iterator value="#request.employee"> <tr> <td>${id }</td> <td>${lastName }</td> <td>${email }</td> <td>${birth }</td> <td>${createTime }</td> <td>部门</td> </tr> </s:iterator> </table> </s:else> </body> </html>
SSH整合访问action出现404
整合SSH的时候访问jsp没有问题,访问action的时候页面报404 tomcat启动正常未报错 后台无反应 action方法断点没有进入 ![图片说明](https://img-ask.csdn.net/upload/201510/03/1443887104_74370.png) ![图片说明](https://img-ask.csdn.net/upload/201510/03/1443887143_542498.png) ![图片说明](https://img-ask.csdn.net/upload/201510/03/1443887253_229505.jpg) ![图片说明](https://img-ask.csdn.net/upload/201510/03/1443887227_651271.png) ![图片说明](https://img-ask.csdn.net/upload/201510/03/1443887295_789399.png) ![图片说明](https://img-ask.csdn.net/upload/201510/03/1443887337_149265.png)
SSH整合一个简单的登陆,控制台没报错,jsp页面出现namespace '/'相关的
![图片说明](https://img-ask.csdn.net/upload/201803/23/1521802929_155623.png)
SSH整合增删改查求助!删和查功能可以实现,改和增不能
拜托大家帮忙找一下问题,这个困扰我很久了…… 以下是配置: struts.xml ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521286949_476729.png) baseServiceDao实现 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521286990_930101.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287023_119575.png) 添加的jsp页面 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287053_59169.png) 修改的jsp页面 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287104_696826.png) roleAction的实现 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287360_45686.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287375_48592.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287390_139409.png) 运行时候访问role_list.action是成功的,就是查的功能是实现的 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287205_13044.png) 关键问题来了!!进入role_add.action时候出事,我输入要添加的信息,提交按钮显示连接是不带.action的??可是<s:form action="role_add">这个里面应该是不用带后缀.action的。 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287297_569286.png) edit也是这个问题 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287419_188949.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287436_632210.png) 最后如果我把<s:form action="role_add">改成<s:form action="role_add.action">再去访问,就是 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287459_92359.png) 我研究了很久,各种方法尝试过了,百度也翻了N页,真的没找到相关的解答,因为我查和删的action都能成功的,就是add和update总是找不到result 后缀带上action<s:form action="role_add.action">这个时候提示的错误如下: 19:39:52.159 [http-nio-8080-exec-6] ERROR org.apache.struts2.dispatcher.Dispatcher - Could not find action or result: /SSHTEST/role_edit.action com.opensymphony.xwork2.config.ConfigurationException: There is no Action mapped for namespace [/] and action name [role_edit] associated with context path [/SSHTEST]. at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:195) ~[struts2-core-2.5.14.1.jar:2.5.14.1] at org.apache.struts2.factory.StrutsActionProxy.prepare(StrutsActionProxy.java:57) ~[struts2-core-2.5.14.1.jar:2.5.14.1] at org.apache.struts2.factory.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:32) ~[struts2-core-2.5.14.1.jar:2.5.14.1] at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:60) ~[struts2-core-2.5.14.1.jar:2.5.14.1] at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564) [struts2-core-2.5.14.1.jar:2.5.14.1] at org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79) [struts2-core-2.5.14.1.jar:2.5.14.1] at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141) [struts2-core-2.5.14.1.jar:2.5.14.1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:8.5.15] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.15] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [catalina.jar:8.5.15] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [catalina.jar:8.5.15] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [catalina.jar:8.5.15] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [catalina.jar:8.5.15] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) [catalina.jar:8.5.15] at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) [catalina.jar:8.5.15] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [catalina.jar:8.5.15] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [catalina.jar:8.5.15] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) [tomcat-coyote.jar:8.5.15] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-coyote.jar:8.5.15] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) [tomcat-coyote.jar:8.5.15] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) [tomcat-coyote.jar:8.5.15] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:8.5.15] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_131] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.5.15] at java.lang.Thread.run(Unknown Source) [?:1.8.0_131] 我也不知道是JAR包有什么问题吗?平台是Eclipse,JDK是1.8的。我是新手,有可能JAR包导多了……JAR包如下: ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521288003_64073.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521288020_105628.png) 我是自学的,刚开始做SSH项目,周围没有人可以问,之前bug都是自己百度解决了……真心求助,写帖子排版也花了好久的,有好心人帮忙看一下不。卡在这里我强迫症,没有办法跳过,后面的东西做不下去。。 另外,第一次发帖,不知道还需要提供什么东西不?有没有人看懂我错在哪里了? ================================================= 不知道有没有人看? 我研究到现在,发现了很诡异的地方……现在增的功能也能实现了,我把roleAction类里的add方法名字换成save,然后jsp里那个也换了jsp的form里action="save",注意,这里没有后缀【我为什么强调后缀是因为这个很诡异的问题最直接的体现在于后缀】,之前写法是action="add",也没加后缀,访问时点击链接显示http://localhost:8080/SSHTEST/role_add【注意,此处后缀没带.action】,我要强调的是我设置了extension就是action,所以不带后缀时肯定是找不到显示404的。但是我的list方法和delete方法,同样的写法run的时候链接的地址都自己带上了.action,就add和edit不行。我甚至复制粘贴过去了,重写过了,都没用,就这2个方法的连接死活run的时候不带后缀。我无意中把add名字换成了save,也没做什么,突然就成功了……问题是add不是什么struts2的关键字,我想不通,给edit方法改了个名字,怎么改也还是连接中不出现后缀。我就再去折腾了一遍save方法,我又什么都不动,重新把save改成了add,果然,又不能新增了。然而我再改回save,此时竟然失效了,又显示连接不带后缀了。我只好ctrl+z恢复一下,然后又可以用了!!!不是输入法问题,我一直用的英文的输入法。我现在就觉得Struts2间歇性的抽风了!这个莫名其妙的问题让我今晚上又废在这里了。 来个有经验的大佬解答一下好不好?Struts2是2.5.14的。我真心觉得不是我代码问题,我都手动重写了两遍……复制黏贴改过两遍。都没用的。另外关于后缀的问题,我也试过注释那句extension只能是action。但是同样做到edit的时候报错 01:30:08.669 [http-nio-8080-exec-10] ERROR org.apache.struts2.dispatcher.Dispatcher - Could not find action or result: /SSHTEST/role_edit com.opensymphony.xwork2.config.ConfigurationException: There is no Action mapped for namespace [/] and action name [role_edit] associated with context path [/SSHTEST].
activiti modeler ssh整合
点击创建按钮后出现message页面,点确定或者×后就出现了这个gif图片,不停的动却不跳转,后台信息:: :九月 26, 2016 9:47:47 上午 org.apache.catalina.core.ApplicationContext log 信息: ExplorerRestletServlet: [Restlet] ServerServlet: component class is null 九月 26, 2016 9:47:47 上午 org.apache.catalina.core.ApplicationContext log 信息: ExplorerRestletServlet: [Restlet] Attaching application: org.activiti.explorer.rest.ExplorerRestApplication@50a2efe0 to URI: /gass/service 九月 26, 2016 9:47:48 上午 org.restlet.engine.log.LogFilter afterHandle 信息: 2016-09-26 09:47:48 0:0:0:0:0:0:0:1 - 0:0:0:0:0:0:0:1 8080 GET /gass/service/editor id=532501 200 - 0 132 http://localhost:8080 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 http://localhost:8080/gass/securityJsp/act/modelerform.jsp 然后手动修改路径//localhost:8080/gass/service/editor?id=532501 就进去了,这该怎么解决![![图片说明](https://img-ask.csdn.net/upload/201609/26/1474855436_371448.png) ![图片说明](https://img-ask.csdn.net/upload/201609/26/1474855706_974975.png)
ssh2整合问题,struts2 页面访问不到Action里面的方法
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.devMode" value="true"/> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.convention.result.path" value="/WEB-INF/jsp"/> <constant name="struts.convention.package.locators" value="web,action"/> <constant name="struts.objectFactory" value="spring"/> <constant name="struts.configuration.xml.reload" value="true"/> <package name="demo" extends="struts-default" namespace="/demo" /> </struts> ``` web.xml ``` <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>filterConfig</param-name> <param-value>classpath:struts/struts.xml</param-value> </init-param> </filter> <!-- 配置struts2映射 --> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` Action.java ``` package com.sshf.action; import java.util.Map; 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.context.annotation.Scope; import org.springframework.stereotype.Component; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.sshf.model.PhsaUser; import com.sshf.service.UserService; @Component @Namespace("/demo") @Scope("prototype") public class UserAction extends ActionSupport{ private static final long serialVersionUID = 1L; @Resource private UserService userService; private PhsaUser user; private String id; @Action(value="queryUser",results={ @Result(name="success",location="/WEB-INF/jsp/success.jsp"), @Result(name="error",location="/WEB-INF/jsp/error.jsp")}) public String queryUser() throws Exception{ //Integer userId=this.getUser().getId(); Integer uId=Integer.parseInt(this.getId()); PhsaUser user = userService.queryById(uId); if(user!=null){ ActionContext actionContext = ActionContext.getContext(); Map<String,Object> session= actionContext.getSession(); session.put("user",user); return SUCCESS; } return ERROR; } ........id set/get... } ``` queryUser.jsp ``` <form action="/demo/queryUser" method="post"> 查找id:<input type="text" name="id"/><br> <input type="submit" value="check"/> </form> ```
SSH中Struts2获取不到jsp页面中值,求大神指点
ssh框架整合,添加员工信息; 员工,Emp: ``` package com.blue.entity; public class Emp { //id,数据库中为标识列 private int empId; //姓名 private String empName; //年龄 private int empAge; //性别 private String empSex; public int getEmpId() { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getEmpName() { return empName; } public void setEmpName(String empName) { this.empName = empName; } public int getEmpAge() { return empAge; } public void setEmpAge(int empAge) { this.empAge = empAge; } public String getEmpSex() { return empSex; } public void setEmpSex(String empSex) { this.empSex = empSex; } } ``` jsp页面,form: ``` <form action="empLogin" method="post"> <table width="300px" height="150px" border="1px"> <tr> <td width="100px">姓名:</td> <td><input type="text" name="emp.empName"/></td> </tr> <tr> <td>年龄:</td> <td><input type="text" name="emp.empAge"/></td> </tr> <tr> <td>性别:</td> <td><input type="text" name="emp.empSex"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="保存"></td> </tr> </table> </form> ``` action: ``` package com.blue.action; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.blue.entity.Emp; import com.blue.service.EmpService; import com.opensymphony.xwork2.ActionSupport; public class EmpAction extends ActionSupport{ public String result(){ ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); EmpService empService= (EmpService) context.getBean("empService"); Emp emp = (Emp) context.getBean("emp"); //测试 System.out.println("id:"+emp.getEmpId()+" name:"+emp.getEmpName()+" age:"+emp.getEmpAge()+" sex:"+emp.getEmpSex()); int num = empService.save(emp); if(num == -1){ //值为空 return "empty"; }else if(num > 0){ //添加成功 return SUCCESS; }else{ //失败 return ERROR; } } } 控制台输出: id:0 name:null age:0 sex:null ``` spring配置文件(beans.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: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-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value> classpath:hibernate.cfg.xml </value> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="emp" class="com.blue.entity.Emp"></bean> <bean id="empDao" class="com.blue.dao.impl.EmpDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> <bean id="empService" class="com.blue.service.impl.EmpServiceImpl"> <property name="empDao" ref="empDao"></property> </bean> <bean id="empAction" class="com.blue.action.EmpAction" scope="prototype"></bean> </beans> ``` 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.objectFactory" value="spring"></constant> <package name="default" namespace="/" extends="struts-default"> <action name="empLogin" class="com.blue.action.EmpAction" method="result"> <result name="success">welcome.jsp</result> <result name="error">error.jsp</result> <!-- 空值 --> <result name="empty">empty.jsp</result> </action> </package> </struts> ``` 包结构: ![图片说明](https://img-ask.csdn.net/upload/201610/02/1475398814_503001.png) 取不到页面值,求大神指点
ssh整合问题,怎么办,求指导
tomcat启动正常,showsql 也打开了,用jsp输出数据做测试,数据是从数据库查询的,现在页面没数据输出,控制台也没有sql语句出来
基于annotation的ssh整合问题
<p>按照网上的教程,做了个用户注册的小例子。</p> <p>输入用户名、密码提交后,每次都提示注册成功,控制台也能输出新用户的id,但数据库中却没有记录。</p> <p>之前在另一个项目中,将配置文件改为annotation时,也出现过这种问题,一直没有找到原因,不知道各位前辈有没有人知道原因? </p> <p> </p> <p>注册页面index.jsp</p> <pre name="code" class="html">&lt;s:form action="register"&gt; &lt;s:textfield label="用户名" name="username"/&gt; &lt;s:password label="密码" name="password"/&gt; &lt;s:submit value="注册"/&gt; &lt;/s:form&gt;</pre> <p> </p> <p>Action:</p> <pre name="code" class="java"> @Controller @Scope("prototype") @ParentPackage(value="struts-default") @Results({ @Result(name="success",value="success.jsp"), @Result(name="input",value="index.jsp") }) public class RegisterAction extends ActionSupport { @Resource(name="userService") private UserServiceBean userService; private String username; private String password; @Override public String execute() throws Exception { User user = new User(); user.setUsername(username); user.setPassword(password); userService.save(user); return SUCCESS; } }</pre> <p> </p> <p>Service:</p> <pre name="code" class="java">@Service("userService") public class UserServiceBean { @Autowired private UserDao userDao; public void save(User user){ int id = userDao.save(user); System.out.println("id="+id); } }</pre> <p> </p> <p>DAO:</p> <pre name="code" class="java"> @Repository("userDao") </pre> <pre name="code" class="java"> public class UserDaoBean extends MyHibernateDaoSupport implements UserDao { public int save(User user){ Integer id = (Integer)super.getHibernateTemplate().save(user); return id; }</pre> <p> </p> <p>MyHibernateDaoSupport .java:</p> <pre name="code" class="java">public class MyHibernateDaoSupport extends HibernateDaoSupport { @Resource(name="sessionFactory") //为父类HibernateDaoSupport注入sessionFactory的值 public void setSuperSessionFactory(SessionFactory sessionFactory){ super.setSessionFactory(sessionFactory); } }</pre> <p> </p> <p> applicationContext.xml</p> <pre name="code" class="xml">&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&gt; &lt;property name="configLocation"&gt; &lt;value&gt;classpath:hibernate.cfg.xml&lt;/value&gt; &lt;/property&gt; &lt;/bean&gt;</pre> <p> </p> <p>hibernate.cfg.xml</p> <pre name="code" class="xml">&lt;session-factory&gt; &lt;property name="connection.username"&gt;root&lt;/property&gt; &lt;property name="connection.url"&gt; jdbc:mysql://localhost:3306/ssh_annotation &lt;/property&gt; &lt;property name="dialect"&gt; org.hibernate.dialect.MySQLDialect &lt;/property&gt; &lt;property name="myeclipse.connection.profile"&gt; ssh_anno_mysql &lt;/property&gt; &lt;property name="connection.password"&gt;ruihui&lt;/property&gt; &lt;property name="connection.driver_class"&gt; com.mysql.jdbc.Driver &lt;/property&gt; &lt;property name="show_sql"&gt;true&lt;/property&gt; &lt;property name="format_sql"&gt;true&lt;/property&gt; &lt;property name="hbm2ddl.auto"&gt;update&lt;/property&gt; &lt;!-- 将Session扔到线程里去处理 --&gt; &lt;property name="current_session_context_class"&gt;thread&lt;/property&gt; &lt;mapping class="com.rong.entity.User"/&gt; &lt;/session-factory&gt;</pre> <p> </p> <p> </p>
大神帮看下action使用List传值,jsp使用<s:iterator>迭代所有结果没有成功
。 我正在做一个Ssh整合的项目,我想用action使用List传值,jsp使用<s:iterator>迭代所有结果。可是jsp页面一片空白,list的内容console都能正常输出,是不是没有传递到jsp页面呢 SelectAction部分代码: public List<ReportFormBeans> Reportlist; public List<ReportFormBeans> list = new ArrayList<ReportFormBeans>(); public Li...
SSH整合过程中:service老是注入失败?
action对象是用struts2产生的,但是service老是注入失败,其他的dao注入正常,在action中通过getbean的方式可以正常获得service beans.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: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-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <context:annotation-config /> <!-- 分散配置(配置配置文件的位置) --> <context:property-placeholder location= "classpath:jdbc.properties"/> <!-- 生成实例对象要扫描的包,扫描该包,将该包下的注解@Component的类实例化 --> <context:component-scan base-package="com.slg.surveypark.dao.impl,com.slg.surveypark.service.impl,com.slg.surveypark.struts2.action" /> <!-- 配置数据源 --> <bean id="dataSource" destroy-method="close" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClassName}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="maxPoolSize" value="${c3p0.pool.size.max}"/> <property name="minPoolSize" value="${c3p0.pool.size.min}"/> <property name="initialPoolSize" value="${c3p0.pool.size.ini}"/> <property name="acquireIncrement" value="${c3p0.pool.size.increment}"/> </bean> <!--本地会话工程(spring整合 hibernate配置) --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 扫描一下包内的实体类,有@Entity注解与数据库形成映射 --> <property name="packagesToScan"> <list> <value>com.slg.surveypark.model</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <!-- hibernate.hbm2ddl.auto 当为update时根据java对象生成数据库里的表 --> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <aop:config> <aop:pointcut id="bussinessService" expression="execution(* *..*Service.*(..))" /> <aop:advisor pointcut-ref="bussinessService" advice-ref="txAdvice" /> </aop:config> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <!-- 写操作 --> <tx:method name="save*" propagation="REQUIRED" isolation="DEFAULT"/> <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT"/> <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT"/> <tx:method name="batch*" propagation="REQUIRED" isolation="DEFAULT"/> <!-- 读操作 --> <tx:method name="load*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/> <tx:method name="get*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/> <tx:method name="find*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/> <tx:method name="*" propagation="REQUIRED" isolation="DEFAULT" /> </tx:attributes> </tx:advice> </beans> ``` 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.ui.theme" value="simple" /> <!-- 开发模式 --> <constant name="struts.devMode" value="true" /> <package name="surveypark" namespace="/" extends="struts-default"> <action name="RegAction_*" class="com.slg.surveypark.struts2.action.RegAction" method="{1}"> <result name="regPage">/reg.jsp</result> <result name="input">/reg.jsp</result> <result name="success">/index.jsp</result> </action> </package> </struts> ``` action类 ``` package com.slg.surveypark.struts2.action; import javax.annotation.Resource; import org.apache.struts2.interceptor.validation.SkipValidation; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Scope; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Component; import com.slg.surveypark.model.User; import com.slg.surveypark.service.UserService; import com.slg.surveypark.service.impl.UserServiceImpl; import com.slg.surveypark.util.ValidateUtil; //@Component("regaction") //@Scope("prototype") //@Controller public class RegAction extends BaseAction<User> { /** * */ private static final long serialVersionUID = 1L; private User model = new User(); private String confirmPassword; public String getConfirmPassword() { return confirmPassword; } public void setConfirmPassword(String confirmPassword) { this.confirmPassword = confirmPassword; } protected UserService userService; public UserService getUserService() { return userService; } @Resource(name="userService") public void setUserService(UserService userService) { this.userService = userService; } @Override public User getModel() { // TODO Auto-generated method stub return model; } /** * * 这里添加了注解 @SkipValidation 所以会跳过默认的拦截器函数validate() */ @SkipValidation public String toRegPage(){ return "regPage"; } public String doReg(){ userService.saveEntity(model); return SUCCESS; } /** * struts2的默认验证拦截器,所有的action执行前都会执行此函数,除非有跳过注解,如果验证过程有有问题,则 * 终端action的执行过程,返回到struts2配置的“input”指向的页面 */ public void validate(){ if(!ValidateUtil.isValid(model.getEmail())){ addFieldError("email", "email是必填项!"); } if(!ValidateUtil.isValid(model.getNickName())){ addFieldError("nickname", "nickname是必填项!"); } if(!ValidateUtil.isValid(model.getPassword())){ addFieldError("password", "password是必填项!"); } if(hasErrors()){ return ; } if(!model.getPassword().equals(confirmPassword)){ addFieldError("password", "密码不一致!"); return ; } //通过getBean可以获得service // ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); // userService = (UserService)ctx.getBean("userService"); System.out.println(userService); if(userService.isRegisted(model.getEmail())){ addFieldError("email", "email已占用!"); return; } } } ``` service类 ``` package com.slg.surveypark.service.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import com.slg.surveypark.dao.BaseDao; import com.slg.surveypark.model.User; import com.slg.surveypark.service.UserService; import com.slg.surveypark.util.ValidateUtil; @Component("userService") public class UserServiceImpl extends BaseServiceImpl<User> implements UserService { @Resource(name="userDao") public void setDao(BaseDao<User> dao) { super.setDao(dao); } /** * 判断email是否被注册过 */ public boolean isRegisted(String email){ String hql = "select email from User where email =?"; List<User> users = this.findEntityByHQL(hql, email); return ValidateUtil.isValid(users); } } ``` 求指教
你们在做session过期,要求用户重新登录是怎么做的?
我用的是ssh,和easyui。我的想法是在后台设置before增强,判断session中的用户是否失效,如果失效就抛出异常,并通过action result返回视图结果界面。 问题来了:我的数据交互是type json,导致没有办法通过struts重新跳转到登录的JSP页面(搞了一天了![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/18.gif))。而且在JS里写跳转链接也不太现实。 求大神救我脱离苦海![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/16.gif) .... 手机发布时卡了一下,结果竟然刷屏了!!!! 吓得我赶紧登电脑删除多余提问。简直了
SSH2整合出现中文乱码:form提交的中文数据传到了action显乱码
哎,被中文乱码高的晕头转向。在网上搜索的各种方法都用过,form提交的中文数据到action方法里都还是现实中文乱码。 1在Tomcat里面的server.xml把编码改成了UTF-8。 2在项目的属性的Resource里把Test file encoding改为UTF-8。 3手动编写过过滤器。 4使用过自带的编码过滤器(org.springframework.web.filter.CharacterEncodingFilter)。 5在JSP页面里加上了<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page contentType="text/html;charset=UTF-8" %> 6action的方法中有进行过转码:String nameUTF8=new String(admin.getName().getBytes("ISO8859-1"), "UTF-8")或者String nameUTF8=URLDecoder.decode(admin.getName(),"utf-8"),控制台打印的还是乱码。用第一个转码打印的乱码是“????”,而第二个打印的是“閭撶悊閿?”。 7在struts.xml里也加上了<constant name="struts.i18n.encoding" value="UTF-8"/> 在赶毕业设计,被中文乱码耽搁了进程,抑郁不能解。希望好心人士的解答。谢谢
SSH的查询
刚刚问了个问题,在论坛,但是找不到哪去了 ,呵呵,所有在这里在问下,刚学SSH 整合有点问题,希望懂得高手帮下。。 Tcomat 启动不报错,可以增加,增加之后查询出错,好像是版本的问题,我在网上找了下,但是还是不行 , tomcat 报错之后停掉,在启动。直接转到查询页面,这样可以,但是当你在次查询的时候又不行,又是同样的错误。 错误如下: 严重: Servlet.service() for servlet jsp threw exception java.lang.NoSuchFieldError: deferredExpression at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:178) at org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:166) at org.apache.jsp.sel_jsp._jspDestroy(sel_jsp.java:30) at org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:61) at org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:425) at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:139) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1078) at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) 2008-8-27 16:54:18 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet action threw exception java.lang.NoSuchFieldError: deferredExpression at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:178) at org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:166) at org.apache.jsp.sel_jsp._jspDestroy(sel_jsp.java:30) at org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:61) at org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:425) at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:139) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1078) at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) [b]问题补充:[/b] 我自己也不知道什么原因,郁闷,换了个myeclipse6.5 OK了, 我的是hbm 不过映射是对的,莫名其妙啊,@那个暂时还用的不熟 不过还是 谢谢你的回答!!!
一个MyEclipse创建的工程怎么上传到JSP空间上
一个MyEclipse创建的工程怎么上传到JSP空间上,应该传那些文件,请熟悉相关操作的人指点一二。谢谢 在线急等。 一般JSP空间都类似于tomcat目录,都是将文件传到 webapps/ROOT/ 下 但我直接将我的工程传上去总是找不到action 静态页面都是可以访问的。一走action就报503的错误 [b]问题补充:[/b] 我的工程里用到了 SSH 框架整合,按照二楼所说的方法可以访问静态页面,但不能走action 一走action就报 HTTP Status 503 - Servlet action is currently unavailable type Status report message Servlet action is currently unavailable description The requested service (Servlet action is currently unavailable) is not currently available. 的错误 [b]问题补充:[/b] 请问用什么工具打包成war格式的? [b]问题补充:[/b] 你们可以访问 http://askover.jspcn.net/index.jsp再在里面点首页看效果 [b]问题补充:[/b] 在我本地绝对可以 无任何异常 [b]问题补充:[/b] 服务器是tomcat5.X [b]问题补充:[/b] 恩 确实配置监听
SSH搭建好了之后开始测试Struts的Action 转到自己写的404页面
按照李刚的struts讲义写的action 功能是输入用户名密码之后跳转到另外的jsp页面.但是每次都出来404页面.请问是哪边配置有问题? 如果另外ssh框架也没建好还请指正.以下是代码[code="web.xml"]<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Archetype Created Web Application</display-name> <!-- 以下3项参数与log4j的配置相关 --> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <!-- 默认情况下,会加载WEB-INF/applicationContext.xml这个文件,我们可以通过配置 contextConfigLocation参数改变配置文件的路径 --> <!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔 此参数用于后面的Spring-Context loader --> <!-- 使容器启动时,自动加载applicationContext配置,因为它实现了ServletContextListener这个接口,容器启动时会自动执行它实现的方法。 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:*/ApplicationContext.xml,*/action-Servlet.xml</param-value> </context-param> <!-- 加载spring容器 --> <!-- 整合struts 加入中心拦截器 --> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> <init-param> <param-name>struts.action.extendion</param-name> <param-value>action</param-value> </init-param> </filter> <!-- <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>--> <!-- Struts --> <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.xml</param-value></init-param> <load-on-startup>2</load-on-startup> </servlet> <!-- session超时定义,单位为分钟 --> <session-config> <session-timeout>120</session-timeout> </session-config> <!-- 默认首页定义 --> <welcome-file-list> <welcome-file>login2.jsp</welcome-file> </welcome-file-list> <!-- Error Page定义 --> <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/commons/error.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/commons/error.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/commons/404.jsp</location> </error-page> <error-page> <error-code>403</error-code> <location>/commons/403.jsp</location> </error-page> </web-app> [/code] [code="strut.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"/> <constant name="struts.objectFactory" value="spring" ></constant> <package name="calvin" extends="struts-default"> <action name="login" class="/loginAction"> <result name="error">index.jsp</result> <result name="success">/pages/index.jsp</result> </action> </package> </struts>[/code] [code="ApplicationContext.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- Spring容器配置文件 --> <!-- 告诉spring hibernate文件的位置 然后加载 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/policemanagement?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="rooot"/> <property name="maxActive" value="100"/> <property name="maxIdle" value="30"/> <property name="maxWait" value="1000"/> <property name="defaultAutoCommit" value="true"/> <property name="removeAbandoned" value="true"/> <property name="removeAbandonedTimeout" value="60"/> <property name="logAbandoned" value="true"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mappingResources" > <list> <value>calvin/po/pojo/hbm/arrestedPerson.hbm.xml</value> <value>calvin/po/pojo/hbm/caseRegisted.hbm.xml</value> <value>calvin/po/pojo/hbm/caseThread.hbm.xml</value> <value>calvin/po/pojo/hbm/caseVictim.hbm.xml</value> <value>calvin/po/pojo/hbm/policeOfficer.hbm.xml</value> <value>calvin/po/pojo/hbm/victimOffice.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hbm2ddl.auto">create</prop> </props> </property> </bean> <!-- 为hibernte配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- daoContext 配置原因 所以放在这边 --> <bean id="dao" class="calvin.dao.imp.BaseDAOHibernate"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="policeOfficerDAO" class="calvin.dao.imp.PoliceOfficerImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="arrestedPersonDAO" class="calvin.dao.imp.ArrestedPersonImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseRegisteredDAO" class="calvin.dao.imp.CaseRegisteredImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseThreadDAO" class="calvin.dao.imp.CaseThreadImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseVictimDAO" class="calvin.dao.imp.CaseVictimImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="victimOfficeDAO" class="calvin.dao.imp.VictimOfficeImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <!-- ENd --> <!-- IOC 注入机制 --> <!-- 定义事务模板类 --> <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <!-- 注入事务管理器 --> <property name="transactionManager" ref="transactionManager"/> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property></bean> <!-- 配置具体业务逻辑层组件的事物代理 --> <bean id="manager" parent="txProxyTemplate"> <property name="target"> <bean class="calvin.service.BaseManager"> <property name="dao" ref="dao"/> </bean> </property> </bean> <!-- 配置具体的业务逻辑组件额事务代理 --> <!-- 配置业务逻辑组件的事务代理,使用了bean 的继承 --> <!-- 配置所需要的dao组件!!!即这里用的是dao的名字 --> <bean id="facadeManager" parent="txProxyTemplate"> <!-- 配置事务代理时,指定代理的目标,此处的目标是嵌套bean--> <property name="target"> <!-- 嵌套bean无须使用 id属性--> <bean class="calvin.service.imp.FacadeManagerImp"> <!-- 为业务逻辑组件注入DAO组件 --> <property name="victimOfficeDAO" ref="victimOfficeDAO"/> <property name="policeOfficerDAO" ref="policeOfficerDAO"/> <property name="caseVictimDAO" ref="caseVictimDAO"/> <property name="caseThreadDAO" ref="caseThreadDAO"/> <property name="caseRegisteredDAO" ref="caseRegisteredDAO"/> <property name="arrestedPersonDAO" ref="arrestedPersonDAO"/> </bean></property> </bean> <!-- action --> <bean id="myService" class="calvin.action.test.MyServiceImp"/> <bean name="/loginAction" class="calvin.action.LoginAction" scope="prototype"> <property name="ms" ref="myService"/> </bean> </beans>[/code] [code="LoginAction"]package calvin.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.junit.Test; import calvin.action.baseAction.BaseAction; import calvin.action.test.MyService; import calvin.po.pojo.PoliceOfficer; public class LoginAction extends BaseAction{ private String username; private String password; private MyService ms; public MyService getMs() { return ms; } public void setMs(MyService ms) { this.ms = ms; } 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; } @Override public String execute() throws Exception{ System.out.println("AAA"); if(ms.valid(getUsername(),getPassword())){ return new String("success"); }else{ return "error";} } } [/code] [code="MyServiceImp"]package calvin.action.test; public class MyServiceImp implements MyService{ public boolean valid(String username,String pass){ return true; } } [/code] 首页配置就是一个很简单的登陆页面.
JSP搜索联想框,新手求指教。
不是用的SSH框架,DAO用JDBC,项目赶工,DAO和Service整合在了一起,我是半路插入的~各位大神先别吐槽……咱先把问题解决再美化~谢谢 页面结构如下 ``` <input name="accountName" id="accountName" class="yhgl_ser required inputElem" onkeyup="getLinkData();" value="<%StringHelper.filterHTML(out, request.getParameter("accountName"));%>" /> <div id="popup" style="position: absolute;"> <table width="100%" bgcolor="#fffafa"> <tbody id="popupBody"></tbody> </table> </div> ``` JS代码如下(借鉴了很多网上的JS方法) ``` <script type="text/javascript"> function getLinkData() { var popupDiv = document.getElementById("info");//获得对应的div对象 var popupBody = document.getElementById("popupBody");//获得对应的tbody对象 var linkDataProperty = document.getElementById("accountName"); //获得对应的输入框对象 clearModels();//清除联想输入提示框的内容 //利用ajax获取后台的模糊查询的数据,并且封装成下拉列表的形式展现出来 $.ajax({ type : "post",//提交的方法为post //对应的Action提交的路径 url : "<%configureProvider.format(out, URLVariable.SEARCH_ACCOUNT);%>", data:{linkDataProperty:linkDataProperty.value},//从前台传递到后台的查询语句的参数 dataType : "json", //从Action中返回的数据的类型为json类型的 error:function(){ alert("没有对应的数据,请查看输入的查询条件!"); }, success : function(data) {//当Ajax提交成功时调用的方法 if(data.length==0){return;} setOffsets();//设置联想输入下拉列表提示框的位置 var tr,td,text; for (var i = 0; i < data.length; i++) {//根据返回的值,手动的拼tbody的内容 text = document.createTextNode(data[i].linkDataProperty);//从Action中返回的数据中取出linkDataProperty的值 td = document.createElement("td");//创建一个td的对象 tr = document.createElement("tr");//创建一个tr的对象 td.mouseOver = function(){this.className="mouseOver;"}; td.mouseOut = function(){this.className="mouseOut;"}; td.onclick = function(){populateModel(this)};//单击td是的方法为populateModel td.appendChild(text); tr.appendChild(td); popupBody.appendChild(tr); } }}); //点击下拉列表中的某个选项时调用的方法 function populateModel(cell) { clearSelect(); linkDataProperty.value = cell.firstChild.nodeValue; //initOtherData(linkDataProperty.value);利用输入框中的数据调用其他方法,初始化其他数据 clearModels();//清除自动完成行 } //清除自动完成行,只要tbody有子节点就删除掉,并且将将外围的div的边框属性设置为不可见的 function clearModels() { while (popupBody.childNodes.length > 0) { popupBody.removeChild(popupBody.firstChild); } popupDiv.style.border = "none"; } //设置下拉列表的位置和样式 function setOffsets() { var width = linkDataProperty.offsetWidth;//获取linkDataProperty输入框的相对宽度 var left = getLeft(linkDataProperty); var top = getTop(linkDataProperty) + linkDataProperty.offsetHeight; popupDiv.style.border = "black 1px solid"; popupDiv.style.left = left + "px"; popupDiv.style.top = top + "px"; popupDiv.style.width = width + "px"; } //获取指定元素在页面中的宽度起始位置 function getLeft(e) { var offset = e.offsetLeft; if (e.offsetParent != null) { offset += getLeft(e.offsetParent); } return offset; } //获取指定元素在页面中的高度起始位置 function getTop(e) { var offset = e.offsetTop; if (e.offsetParent != null) { offset += getTop(e.offsetParent); } return offset; } } //清空输入框中的数据 function clearSelect() { var linkDataProperty=document.getElementById(linkDataProperty); linkDataProperty.value=""; } </script> ``` Servlet代码如下 ``` protected void processPost(HttpServletRequest request, HttpServletResponse response, ServiceSession serviceSession) throws Throwable { //往后传数据 System.out.println("进入servlet,将传入后台:"+request.getParameter("accountName")); //获得DAO服务 ZhglManage manage = serviceSession.getService(ZhglManage.class); //获得前台数据并往后台发送,同时接收返回的结果 String accounts = manage.searchAccountInOneResult(request.getParameter("accountName")); //往前端发送 PrintWriter out = response.getWriter(); System.out.println("返回servlet,即将返回获得的结果:"+accounts+" 给页面"); out.print(accounts); out.close(); } ``` DAO加Service代码如下: ``` public String searchAccountInOneResult(String inputing) throws Throwable { //尝试了Gson但也没成功 Gson gson = new Gson(); System.out.println("进入DAO,传入的参数是:"+inputing); //map方式 Map<String, String> rsMap = new HashMap<String,String>(); String account = ""; String key = ""; //获得连接 Connection conn = getConnection(); //准备SQL语句,获得单列账号信息 String sql = "SELECT @ROW := @ROW +1 AS ROW , t.F02 AS accountName FROM S61.T6110 t, ( SELECT @ROW :=0 )r WHERE t.F02 LIKE '"+inputing+"%' LIMIT 10"; PreparedStatement pstm = conn.prepareStatement(sql); //执行SQL ResultSet rs = pstm.executeQuery(); //获得结果 while(rs.next()){ //map方式 key = rs.getString("accountName"); account = rs.getString("accountName"); rsMap.put(key, account); } String temp = gson.toJson(rsMap); System.out.println("正在打印gson:"+temp); return temp; } ``` 然后控制台是这样的 进入servlet,将传入后台:1 进入DAO,传入的参数是:1 正在打印gson:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 返回servlet,即将返回获得的结果:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 给页面 firefox控制台和页面效果是这样的 ![图片说明](https://img-ask.csdn.net/upload/201505/18/1431943341_591979.png) 我对JS什么的不怎么懂,来请教下各位我哪里有问题,解决方法或者说解决思路应该是怎样的
关于struts2.xml文件中某个action的result属性的值能否填到第三方网站?
在用ssh框架整合时候,做到订单需要提交到第三方支付平台进行安全支付,我这里用到易宝支付平台作为第三方支付平台。那么。问题来了。我们知道。一般来说。struts2.xml配置文件里面,举例某个action格式如下: ``` <action name="findOrderAction" class="OrderAction" method="findOrder"> <result name="SUCCESS">/front/jsp/order.jsp</result> </action> ``` 可知result属性中填的一般都是本地的网址,即连接到本地的资源 那么请问一下,如果我现在要提交到第三方网站,这里result属性的值可以填为 ``` <action name="findOrderAction" class="OrderAction" method="findOrder"> <result name="SUCCESS">https://www.yeepay.com/app-merchant-proxy/node </result> </action> ``` 如上面这样吗?我没有验证过,所以不清楚是否可以。但是。如果在该网址https://www.yeepay.com/app-merchant-proxy/node后面添加参数呢。最重要的是这个参数是由前端页面传进来的值。是动态变化的。那我在struts2.xml文件中又如何获得这个动态的参数值呢 ?跪求大神帮忙!谢谢。
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
程序员,职场上请远离这种人!
对有些职场人来讲,甩锅就是一种生存手段。01.从大学打篮球说起上大学的时候喜欢打篮球,然后我又特别喜欢抢篮板,经常是跳起来的时候没事,落下来的时候偶尔会踩到别人的脚上,于...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
一个读研让我损失了一百万的真实故事
关注我!只要10分钟,包你学会数据分析 毕业后,应该就业还是考研? 我刚出国留学那会儿,就惊讶的发现,外国local95%都不会选择读研 他们说,硕士学费很贵,时间宝贵,老板不认,所以很费 当几乎所有人都是本科学历时,硕士学历反而像个异类 在老板眼里,三年硕士远远不如3年的工作经验实用 他们甚至专门为拒绝高学历者发明了一个词,叫overoccupie...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
【图解算法面试】记一次面试:说说游戏中的敏感词过滤是如何实现的?
版权声明:本文为苦逼的码农原创。未经同意禁止任何形式转载,特别是那些复制粘贴到别的平台的,否则,必定追究。欢迎大家多多转发,谢谢。 小秋今天去面试了,面试官问了一个与敏感词过滤算法相关的问题,然而小秋对敏感词过滤算法一点也没听说过。于是,有了下下事情的发生… 面试官开怼 面试官:玩过王者荣耀吧?了解过敏感词过滤吗?,例如在游戏里,如果我们发送“你在干嘛?麻痹演员啊你?”,由于“麻痹”是一个敏感词,...
GitHub 标星 1.6w+,我发现了一个宝藏项目,作为编程新手有福了!
大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻… 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。 后来自己花了一个星期看完了 Pyt...
杭漂程序员2019的心路历程,还不起助学贷款,交不起房租,披荆斩棘终雨过天晴
一个杭漂2019的心酸历程,一路披荆斩棘终于还是雨过天晴。
我采访了同事,让他掏出了每天都会浏览的干货网站
前言只有光头才能变强。文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y在周六的晚上,我日常去到公司写文章。想写...
相关热词 c# id读写器 c#俄罗斯方块源码 c# linq原理 c# 装箱有什么用 c#集合 复制 c# 一个字符串分组 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图
立即提问