在基于Spring注释的控制器中,是否可以使用@RequestMapping
不同的方法映射不同的查询字符串?
例如
@RequestMapping("/test.html?day=monday")
public void writeMonday() {
}
@RequestMapping("/test.html?day=tuesday")
public void writeTuesday() {
}
Run Code Online (Sandbox Code Playgroud) 我已经设置了如下web.xml.我还有一个基于注释的控制器,它接受任何URL模式,然后转到相应的jsp(我在-servlet.xml中设置了它).但是,如果我转到以.html结尾的页面(并且其jsp不存在),我看不到自定义404页面(并在日志中看到以下错误).任何不以.html结尾的页面,我都可以看到自定义404页面.
如何为通过DispatcherServlet的任何页面配置自定义404页面?
还想添加,如果我将我的错误页面设置为静态页面(即.html.htm)它可以工作,但如果我将其更改为jsp(即错误.jsp),我会得到IllegalStateException.任何帮助,将不胜感激.
记录错误
Caused by: java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:606)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
Run Code Online (Sandbox Code Playgroud)
调节器
@RequestMapping(value = {"/**"})
public ModelAndView test() {
ModelAndView modelAndView = new ModelAndView();
return modelAndView;
}
Run Code Online (Sandbox Code Playgroud)
web.xml中
<servlet>
<servlet-name>my_servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
Run Code Online (Sandbox Code Playgroud)
...
<servlet-mapping>
<servlet-name>my_servlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
...
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
Run Code Online (Sandbox Code Playgroud) 我在Android模拟器上安装了新字体.说明说我必须重新启动我的设备.我尝试使用"关闭电源"按钮,但它只显示"关闭"并且什么都不做.即使我去adb shell并运行"reboot"它也会挂起.
任何想法如何重新启动模拟器,以便出现新设置?
谢谢.
我正在使用带有绑定字符串的 SwiftUI TextField 将用户的输入更改为电话格式。键入时,格式正在发生,但光标不会移动到文本字段的末尾,它会保留在输入时的位置。例如,如果我输入1
,则 texfield 的值(格式化后)将为(1
,但光标停留在第一个字符之后,而不是行尾。
有没有办法将文本字段的光标移动到行尾?
这是示例代码:
import SwiftUI
import AnyFormatKit
struct ContentView: View {
@State var phoneNumber = ""
let phoneFormatter = DefaultTextFormatter(textPattern: "(###) ###-####")
var body: some View {
let phoneNumberProxy = Binding<String>(
get: {
return (self.phoneFormatter.format(self.phoneNumber) ?? "")
},
set: {
self.phoneNumber = self.phoneFormatter.unformat($0) ?? ""
}
)
return TextField("Phone Number", text: phoneNumberProxy)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Run Code Online (Sandbox Code Playgroud)