好吧也许有人可以帮助我解决我正在努力解决的问题.基本上我有一个JSP页面,它获取Country对象的列表(来自Spring Portlet SimpleFormController的方法referenceData(),不完全相关,但只是提到它).每个Country对象都有一组省对象,每个省和国家都有一个名称字段:
public class Country {
private String name;
private Set<Province> provinces;
//Getters and setters
}
public class Province {
private String name;
//Getters and setters
}
Run Code Online (Sandbox Code Playgroud)
现在我在我的JSP中为国家和省份提供了两个下拉菜单,我希望按国家/地区筛选省份.我一直在关注本教程/指南,在JavaScript中进行链式选择.
现在我需要一种动态的方法来从我的内容创建JavaScript数组.在任何人提到AJAX之前,这是不可能的,因为我们的项目使用portlet,我们希望远离使用DWR等框架或创建servlet.这是我到目前为止的JavaScript/JSP,但它没有用任何东西填充数组:
var countries = new Array();
<c:forEach items="${countryList}" var="country" varStatus="status">
countries[status.index] = new Array();
countries[status.index]['country'] = ${country.name};
countries[status.index]['provinces'] =
[
<c:forEach items="${country.provinces}" var="province" varStatus="provinceStatus">
'${province.name}'
<c:if test="${!provinceStatus.last}">
,
</c:if>
</c:forEach>
];
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何在JSP中创建一个JavaScript数组,或者在这种情况下会考虑"最佳实践"?提前致谢!
所以我在System.Data.SQLite和使用多个事务时遇到了一个有趣的问题.基本上我有以下代码失败:
using (IDbConnection connection1 = new SQLiteConnection("connectionstring"), connection2 = new SQLiteConnection("connectionstring"))
{
connection1.Open();
connection2.Open();
IDbTransaction transaction1 = connection1.BeginTransaction();
IDbTransaction transaction2 = connection2.BeginTransaction(); // Fails!
using(IDbCommand command = new SQLiteCommand())
{
command.Text = "CREATE TABLE artist(artistid int, artistname text);";
command.CommandType = CommandType.Text;
command.Connection = connection1;
command.ExecuteNonQuery();
}
using (IDbCommand command = new SQLiteCommand())
{
command.Text = "CREATE TABLE track(trackid int, trackname text);";
command.CommandType = CommandType.Text;
command.Connection = connection2;
command.ExecuteNonQuery();
}
transaction1.Commit();
transaction2.Commit();
}
Run Code Online (Sandbox Code Playgroud)
从我所看到的,似乎System.Data.SQLite应该支持嵌套和扩展顺序事务.代码在第7行(声明第二个事务)失败,但有以下异常:
System.Data.SQLite.SQLiteException: The database file is locked
System.Data.SQLite.SQLite3.Step(SQLiteStatement …Run Code Online (Sandbox Code Playgroud) 所以我正在查看一个开源的csproj文件并注意到这一点:
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}">
<HostingProcess disable="1" />
</FlavorProperties>
</VisualStudio>
<ProjectExtensions>
Run Code Online (Sandbox Code Playgroud)
这对C#项目有什么影响?它告诉visual studio要做什么?MSDN有这个说法,但我不完全确定它们的意思或适用的地方(MSDN MSBuild):
项目子类型还可以在将调用委托给内部项目子类型之前或之后修改XML片段.以下示例显示项目文件的摘录,其中包含特定于项目子类型的属性的文件名称将传递给该项目子类型
任何见解都表示赞赏!
谢谢!
我正在使用LINQ,我想知道创建XDocument的最佳方法是什么,然后检查以确保XDocument实际存在,就像File.Exists一样?
String fileLoc = "path/to/file";
XDocument doc = new XDocument(fileLoc);
//Now I want to check to see if this file exists
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
谢谢!
所以我使用的是Eclipse,我去复制了一些我选择的导入语句.我以某种方式错误输入,最酷的事情发生了:snippet创建了一个包,并创建了一个如下所示的Snippet.java类:
package snippet;
public class Snippet {
public static void main(String[] args) {
// Selected code
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这样做的键盘快捷键是什么?这似乎是一个非常有用的功能.我试过在线搜索,但没有运气.
我在LINQ中遇到了一些名称空间问题.因此,从MSDN的教程开始,我们可以执行以下操作,使用LINQ将命名空间添加到XML文档:
// Create an XML tree in a namespace.
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
new XElement(aw + "Child", "child content")
);
Console.WriteLine(root);
Run Code Online (Sandbox Code Playgroud)
哪个会给你XML:
<Root xmlns="http://www.adventure-works.com">
<Child>child content</Child>
</Root>
Run Code Online (Sandbox Code Playgroud)
但我想做的是:
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Roots");
XElement child = new XElement("Child", "child content");
root.Add(child);
Console.WriteLine(root);
Run Code Online (Sandbox Code Playgroud)
但这给了我以下xml:
<Root xmlns="http://www.adventure-works.com">
<Child xmlns="">child content</Child>
</Root>
Run Code Online (Sandbox Code Playgroud)
问题是我不想xmlns=""在我的子元素中编辑(编辑:我不想在我的子元素中使用任何名称空间),我希望它看起来就像第一种产生它的方式.我建立一个相当大的XML文件,所以我不能添加的所有元素在同一声明,并需要能够使用Add和SetAttributeValue多种方法XElements仍然具有xmlns的第一个元素.我有什么想法可以做到这一点?
谢谢!
好的,这可能是一个荒谬的愚蠢问题,但我似乎无法找到一个可行的答案所以请原谅我的无知,如果答案是显而易见的.我想要的是一个正则表达式,它将匹配十六进制值正好8次.所以我尝试过这样的事情:
我的正则表达式:
[0-9a-fA-F]{8}
Run Code Online (Sandbox Code Playgroud)
样本输入:
D651000000060D60FADF0DFCE080E020636263633534623231386339
Run Code Online (Sandbox Code Playgroud)
示例失败输入(当我不希望它时,我的给定正则表达式匹配):
........@%........$dc073bcc-6aa5
Run Code Online (Sandbox Code Playgroud)
但由于某些原因,这对我不起作用.从我的理解,{8}应该匹配前面的正则表达8次...但这似乎不适用于C#或记事本++.
提前致谢!
所以我试图编译SQLite(使用不同的目标设备,然后通常使用),我得到一个奇怪的警告和错误,我不知道如何解决它的意义.这是我尝试从Visual Studio中编译后得到的消息:
4>编译...
4> interop.c
4> sqlite3.c(11857):错误C2220:警告视为错误 - 未生成"对象"文件
4> sqlite3.c(11857):警告C4013:'localtime'undefined ; 假设extern返回int
4> sqlite3.c(11857):警告C4047:'=':'tm*'的间接级别与'
int'4> sqlite3.c(28379)不同:错误C2040:'localtime':' tm*(const time_t*)'与'int()'的间接级别不同
以下是这些行的代码:
#else
{
struct tm *pTm;
sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER))
pTm = localtime(&t); //Line 11857
y.Y = pTm->tm_year + 1900;
y.M = pTm->tm_mon + 1;
y.D = pTm->tm_mday;
y.h = pTm->tm_hour;
y.m = pTm->tm_min;
y.s = pTm->tm_sec;
sqlite3_mutex_leave(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
}
#endif
Run Code Online (Sandbox Code Playgroud)
和localtime()的方法定义,它抱怨第28379行和间接:
/*************************************************************************
** This section contains code for WinCE only.
*/
/*
** WindowsCE does not have a localtime() function. So create a
** …Run Code Online (Sandbox Code Playgroud) 我有以下查询:
SELECT SUM(count)
FROM (SELECT 'artist' AS table_name, COUNT(*) as count FROM artist
UNION
SELECT 'persons' AS table_name, COUNT(*) as count FROM persons
UNION
SELECT 'track' AS table_name, COUNT(*) as count FROM track)
Run Code Online (Sandbox Code Playgroud)
它按预期工作并返回正确的计数.但是现在当我执行以下查询时,我得到的计数不正确:
SELECT SUM(count)
FROM (SELECT COUNT(*) as count FROM artist
UNION
SELECT COUNT(*) as count FROM persons
UNION
SELECT COUNT(*) as count FROM track)
Run Code Online (Sandbox Code Playgroud)
为什么第一个查询获得正确的计数而第二个查询没有?
我试图通过扩展WebSecurityConfigurerAdapter来创建一个Spring Security配置,基本上是这样的:
@EnableWebSecurity
@Configuration
public class StackOverflowSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(myUsernamePasswordProvider());
auth.authenticationProvider(mySecurityTokenProvider());
super.configure(auth);
}
@Override
@Bean
public AuthenticationManager authenticationManager() throws Exception {
return super.authenticationManagerBean();
}
@Bean
public MyPreAuthenticatedProcessingFilter myAuthenticationFilter() throws Exception {
MyPreAuthenticatedProcessingFilter myAuthenticationFilter = new MyPreAuthenticatedProcessingFilter();
myAuthenticationFilter.setAuthenticationManager(authenticationManager());
return myAuthenticationFilter;
}
}
Run Code Online (Sandbox Code Playgroud)
我看到了这个:
SEVERE: Servlet.service() for servlet [servlet] in context with path [/MyApp] threw exception [Filter execution threw an exception] with root cause
[INFO] [talledLocalContainer] java.lang.StackOverflowError
[INFO] [talledLocalContainer] at org.springframework.security.authentication.AnonymousAuthenticationProvider.supports(AnonymousAuthenticationProvider.java:79)
[INFO] [talledLocalContainer] …Run Code Online (Sandbox Code Playgroud) 所以我试着写一个正则表达式,它将匹配一个定义的字符串,然后最终另一个单词.例如,SELECT * FROM persons ORDER BY name ASC LIMIT 10我希望匹配的字符串ORDER BY name ASC LIMIT.看起来它应该很简单,但我无法弄明白.
基本上我不关心ORDER BY和LIMIT之间的什么,但我想在LIMIT停止匹配.这是我到目前为止:
string pattern = @"\s*ORDER\s*BY.*LIMIT";
Run Code Online (Sandbox Code Playgroud)
但它最终匹配整个SELECT语句,我想停在LIMIT.
提前致谢!
c# ×7
java ×2
linq ×2
linq-to-xml ×2
regex ×2
sql ×2
windows-ce ×2
.net ×1
.net-3.5 ×1
.net-cf-3.5 ×1
arrays ×1
c ×1
c++ ×1
count ×1
eclipse ×1
filter ×1
javascript ×1
jsp ×1
jstl ×1
msbuild ×1
namespaces ×1
notepad++ ×1
reflection ×1
spring ×1
sqlite ×1
string ×1
union ×1