我正在使用几个Spring MVC Web应用程序,我使用getter/setter依赖注入并在app-servlet.xml文件中配置我的所有bean .
我相信我遵循惯例,我将大部分属性和bean注入我的控制器bean,例如我的DAO和我在applicationContext.xml或app-servlet.xml中指定的其他bean
随着我的应用程序变得越来越复杂和越来越大,这些文件中的bean已经填满了更多正在注入的属性.
我的问题是,行在哪里,或者应该注入什么的约定,以及应该在控制器中指定为实例字段/变量的内容.
如果我要在实际控制器中指定字段的值,或者如果我要将值注入到控制器bean中,有时我会面临一种情况.
例如,我正在使用速度模板库来发送我的电子邮件.我的Velocity模板的目录有一条路径.我面临着以下其中一项.
在我的控制器中,我可以指定值
private String basePath = "/path/to/velocity/templates";
Run Code Online (Sandbox Code Playgroud)
或者在我的Controller bean中,我可以将相同的值注入该控制器
<property name="basePath" value="/path/to/velocity/templates"/>
Run Code Online (Sandbox Code Playgroud)
在我的班上,我会得到这个注入值的getter/setter.
我不知道在哪里划线.
我需要一种方法来创建一个IEnumerable的扩展方法,这将允许我返回一个SelectListItem的列表.
例如
public class Role
{
public string Name {get;set;}
public string RoleUID {get;set;}
}
IEnumerable<Role> Roles = .../*Get Roles From Database*/
var selectItemList = Roles.ToSelectItemList(p => p.RoleUID,r => r.Name);
Run Code Online (Sandbox Code Playgroud)
这会给我一个SelectItemList,其中Name是显示,RoleUID是值.
重要事项我希望这是通用的,因此我可以使用对象的任何两个属性创建它,而不仅仅是Role类型的对象.
我怎样才能做到这一点?
我想象下面的东西
public static List<SelectItemList> ToSelectItemList<T,V,K>(this IEnumerable<T>,Func<T,V,K> k)
Run Code Online (Sandbox Code Playgroud)
或者其他什么,我显然知道这是不正确的.
过去,我习惯于使用web.config 中的customErrors元素来指定何时使用自定义错误页面来向用户隐藏详细的异常信息。
从我现在看到的情况来看,最好使用httpErrors。我参考了几个不同的资源,包括 IIS 文档如何完成我需要的,但我似乎无法弄清楚。我需要在 web.config 中指定的要求如下:
1) If HTTP 404 Error
a) If Local, just return IIS 404 or Yellow Screen of Death (YSOD) or whatever. (It doesn't really matter)
b) If not local, execute URL /Path/To/My/404/ErrorMVCAction
2) If ANY OTHER HTTP ERROR
a) Use static error.htm page.
Run Code Online (Sandbox Code Playgroud)
目前,我们有以下几点:
<httpErrors errorMode="DetailedLocalOnly" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404"
prefixLanguageFilePath=""
path="/Path/To/My/404/ErrorMVCAction"
responseMode="ExecuteURL" />
</httpErrors>
Run Code Online (Sandbox Code Playgroud)
当我导航到一个不存在的页面并得到 404 时,我得到了我的自定义错误页面(我通过将 errorMode 更改为“自定义”来测试了这一点。但是,当出现 500 时,而不是出现黄屏死机在我可以看到本地堆栈跟踪的地方,我得到了蓝色 IIS 错误摘要页面。一个例子如下所示。

我有以下动作创建者,并且由于某种原因,调度中的代码没有执行,尽管我知道loginSuccess()因为第一个警报触发而被调用。我究竟做错了什么?
import facebook from '../api/facebook'
import * as types from '../constants/ActionTypes';
export function loginSuccess() {
alert("This alerts fine");
return dispatch => {
alert("This doesn't alert");
}
}
Run Code Online (Sandbox Code Playgroud)
创建商店时,我正在使用 Thunk(或至少认为我是正确的),如下所示。
import App from './containers/App';
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import configureStore from './store';
import createReducer from './reducers';
import { createStore, applyMiddleware } from 'redux'
import Parse from 'parse/react-native';
import { AsyncStorage } from 'react-native';
import Settings from './settings';
import …Run Code Online (Sandbox Code Playgroud) 对于我和其他人正在进行的企业应用程序研究项目,我们希望从页面中删除某些内容,以使发布的消息保持通用(意味着不具有攻击性且基本上是匿名的).现在我们想要收到用户已发布到留言板的消息,并删除任何类型的名称,学院或机构的名称以及亵渎(如果以后可能我们想删除商家名称).
是否有一些我们可以连接到的数据库,我们可以运行擦除我们的消息以检查数据库中的值以识别这些?
我正在使用Tomcat和Java Servlets,JSP等运行Web应用程序.
我知道为了使用Servlet,它依赖于Servlet-api.jar文件.最初我把这个jar文件放在了
WEB-INF/lib/目录.
在发育阶段,这对我来说已经好几个月了.
当我们将应用程序放到我们正在使用的服务器空间时,我们开始看到Catalina.out文件中出现的奇怪问题,告诉我们servlet-api.jar文件存在依赖性问题.
我知道tomcat在它的容器中有这个jar文件,我应该从它中删除它
WEB-INF/lib/目录.我试过这个并没有用.
当我从本地文件中删除此jar文件并允许它依赖于tomcats servlet-api.jar文件时,我该怎么办.
编辑:这是从我收到的Catalina.out文件中提取的确切消息.我将外部JAR添加到类路径,它工作,但我收到了这个问题.
May 17, 2010 12:33:31 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/home/weremo/appservers/apache-tomcat-6.0.26/webapps/WMA-Test/WEB-
INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2.
Offending class: javax/servlet/Servlet.class
我知道我可以谷歌"HTML表格验证",并将得到十亿教程.我很清楚我可以使用简单的JavaScript来验证表单输入,但我被告知这不一定是一种有效的方法.我还听说验证客户端和服务器端代码是最佳做法.好!那么,除了在两者上编写代码之外,这究竟是什么意思呢?这是否意味着我使用JavaScript和其他一些使用Servlet,或者它是否意味着我在两者上编写相同的验证方法?
我真正的问题是,任何人都可以向我提供有关如何验证HTML表单的见解和方向.我正在使用JSP和Servlet,我有大量的表单验证.
我已经用Java中的正则表达式进行了小型表单验证,但是在我编写更多代码之前想要弄清楚我是否正在走向正确的轨道.
只有富有成效的答案,如果我想对我没有经验的负面反馈,我会去Reddit.
谢谢!
我最近已经开始在Web应用程序中再次使用预准备语句,并且我知道不鼓励对所有事务使用预准备语句.我不知道的是什么时候最好使用准备好的陈述.
我已经阅读了何时使用而不使用它们,但没有一个例子真正说明了使用它们的最佳实践.
我试图弄清楚我应该使用哪些数据库调用以及哪些不应该使用.
例如,MySQL网站在下一页的"何时使用预准备语句"中提到它准备语句-MySQL
我已经在大学开始了近一年的网络应用程序开发.完成后,我对大学期间编写的数据库代码进行了一些更改.我在大学时使用简单的JDBC,没有使用连接池和预处理语句.在过去的一个月里,由于查询和使用的数据增加,我意识到了潜力,并且需要使用连接池和准备好的语句.
我已经实现了连接池,但没有真正注意到性能的提高.如果性能有所提高,那么我的问题就会得到解答,但是如何验证连接池和准备好的语句是否正确使用?
W/dalvikvm(21732): threadid=1: thread exiting with uncaught exception (group=0x41d0cda0)
E/Drive.UninstallOperation( 1829): Package still installed com.todos
E/AndroidRuntime(21732): FATAL EXCEPTION: main
E/AndroidRuntime(21732): Process: com.todos, PID: 21732
E/AndroidRuntime(21732): java.lang.RuntimeException: Unable to instantiate application com.todos.MyApplication: java.lang.ClassNotFoundException: Didn't find class "com.todos.MyApplication" on path: DexPathList[[zip file "/data/app/com.todos-3.apk"],nativeLibraryDirectories=[/data/app-lib/com.todos-3, /vendor/lib, /system/lib]]
E/AndroidRuntime(21732): at android.app.LoadedApk.makeApplication(LoadedApk.java:507)
E/AndroidRuntime(21732): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4841)
E/AndroidRuntime(21732): at android.app.ActivityThread.access$1600(ActivityThread.java:174)
E/AndroidRuntime(21732): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381)
E/AndroidRuntime(21732): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(21732): at android.os.Looper.loop(Looper.java:146)
E/AndroidRuntime(21732): at android.app.ActivityThread.main(ActivityThread.java:5731)
E/AndroidRuntime(21732): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21732): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(21732): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
E/AndroidRuntime(21732): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
E/AndroidRuntime(21732): at dalvik.system.NativeStart.main(Native Method) …Run Code Online (Sandbox Code Playgroud)