我正在尝试做 Spring MVC 教程:
它使您创建一个主控制器并启动一个 SpringApplication。
当我运行 SpringApplication 时,我可以看到 Tomcat 服务器启动,控制器类按其应有的方式实例化。但是,映射似乎失败: @RequestMapping("/greeting") 当我尝试浏览http://localhost:8080/TestSpringOpenEMM2/greeting 或http://localhost:8080/TestSpringOpenEMM2/greeting时,我总是得到 404错误。(TestSpringOpenEMM2 是我的项目名称)。
我使用 Eclipse IDE。
这是我的文件:
package application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
System.out.println("App starting" );
SpringApplication.run(Application.class, args);
System.out.println("App started" );
}
}
Run Code Online (Sandbox Code Playgroud)
控制器:
import javax.servlet.annotation.WebServlet;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class GreetingController {
static{
System.out.println("Static init GreetingController");
}
@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model …Run Code Online (Sandbox Code Playgroud) 正在开发 WPF MVVM 项目。
我有一个绑定到模型实体属性的 TextBlock:
<TextBox Text="{Binding MyEntity.Name}"/>
Run Code Online (Sandbox Code Playgroud)
我希望当此 MyEntity.Name 实体更改时更新一个标志。我怎样才能做到这一点 ?
我显然可以设置一个专用的属性名称:
public string Name
{
get
{
return MyEntity.Name;
}
set
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
但我相信你们会提出更优雅的方式。
在创建此检查约束(在 SQL 服务器中)之后,我很惊讶地看到:
ALTER TABLE [dbo].[MYTABLE]
ADD CONSTRAINT MyConstraint
CHECK (MyColumn >0);
Run Code Online (Sandbox Code Playgroud)
我能够添加一个具有 NULL 值的元素:
insert into dbo.MYTABLE(MyColumn) values(NULL);
Run Code Online (Sandbox Code Playgroud)
...这实际上是我想要防止的:)
我不得不将我的约束修改为:
ALTER TABLE [dbo].[MYTABLE]
ADD CONSTRAINT MyConstraint
CHECK (MyColumn IS NOT NULL);
Run Code Online (Sandbox Code Playgroud)
第二个版本正确地阻止了我插入带有 MyColumn = NULL 的元素。
是的,在这个例子中,我可以将 MyColumn 设置为“NOT NULL”。但我真正的问题包括其他条件,其中 MyColumn 可能为空,必须包含在约束中。我将我的问题缩小到下面的代码,这对我来说实际上似乎不合逻辑。
看起来 SQL SERVER 将 NULL 值视为 > 0?? 但是,当您运行时,情况并非如此:
SELECT * from MyTable where MyColumn >0;
Run Code Online (Sandbox Code Playgroud)
它适当地排除了 NULL 值。那么为什么检查约束的行为会有所不同???
我有懒惰量词的问题.或者我很可能误解了我应该如何使用它们.
在Regex101上
测试我的测试字符串是这样说的:123456789D123456789
.{1,5} 火柴 12345
.{1,5}? 火柴 1
我对两场比赛都很好.
.{1,5}?D比赛56789D!! 我希望它能匹配9D
谢谢你澄清这一点.
正在开发 WPF / MVVM 应用程序。将 MVC 窗口从主线程显示到新任务并让主线程继续运行其下一条指令而不等待窗口关闭的最佳方法是什么?
我想运行以下命令:
Window window = new Window();
View view = new View();
ViewModel viewModel = new ViewModel();
window.Content = view;
window.Show();
... program then continues with business stuff
Run Code Online (Sandbox Code Playgroud)
显然,如果我跑
window.Show();
Run Code Online (Sandbox Code Playgroud)
窗口立即返回并关闭。
如果我使用
window.ShowDialog()
Run Code Online (Sandbox Code Playgroud)
线程等待用户关闭窗口,这不是我想要的,因为我需要下一个指令才能继续。
我想我需要将窗口运行到新线程中,但这会带来额外的问题:
Task.Run(() => window.ShowDialog()));
Run Code Online (Sandbox Code Playgroud)
这也不起作用,因为窗口被创建为不同的东西。
所以我想我需要使用调度程序才能在新任务中运行 window.ShowDialog :
Task.Run(() => Application.Current.Dispatcher.Invoke(() => window.ShowDialog() ));
Run Code Online (Sandbox Code Playgroud)
但这也行不通。尽管编译器接受它并且在运行时不会抛出异常,但该窗口永远不会打开。如果我以逐步模式进行调试,我可以看到调试器永远不会在新任务中进入匿名状态。
这应该非常简单,但我只是无法解决这个问题。感谢您提前提供的帮助。
xaml代码,在网格内:
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="My text: " HorizontalAlignment="Left" />
<TextBox Text="{Binding ...}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
我希望文本块左对齐,Tetblock右对齐.使用前面的代码,两者都是右对齐的.
如果我添加一个内部StackPanel,结果相同:
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<StackPanel HorizontalAlignment="Left">
<TextBlock Text="My text: " HorizontalAlignment="Left" />
</StackPanel>
<TextBox Text="{Binding ...}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
我应该怎么做?Thx提前.
Noob问题.为什么这不适用于我的.aspx文件?
<body>
<asp:Label ID="Label1" runat="server" Text='<%=System.DateTime.Today.Day.ToString()%>' ></asp:Label>
</body>
Run Code Online (Sandbox Code Playgroud)
它确实显示<%= System.DateTime.Today.Day.ToString()%>字符串,这显然不是我想要的.
如果我尝试在变量后面显示代码的内容,结果相同:
<asp:Label ID="label" runat="server" Text='<%= versionNumber %>' >
Run Code Online (Sandbox Code Playgroud)
versionNumber正确实例化并设置为后面的代码.
出于任何原因,VS允许我使用我的扩展方法调用的长写.但编译器拒绝较短的形式:
public static class OperationExtender {
public static void MyMethod(Operation ope, int value) {
...
}
Run Code Online (Sandbox Code Playgroud)
}
我可以这样调用它:
OperationExtender.MyMethod(anOperation, 0);
Run Code Online (Sandbox Code Playgroud)
但如果我输入:
anOperation.OperationExtender(0);
Run Code Online (Sandbox Code Playgroud)
VS生成这个通常的编译错误:
'OperationExtender.MyMethod(Operation, int)'
does not contain a definition for
'MyMethod' and no extension method 'MyMethod' accepting a first argument of type 'Operation' could be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)
如果第一次写作被接受,我认为它不能成为usung/NS /汇编问题....
c# ×5
wpf ×3
annotations ×1
asp.net ×1
dispatcher ×1
java ×1
maven ×1
mvvm ×1
regex ×1
spring ×1
spring-mvc ×1
sql-server ×1
xaml ×1