小编Ond*_*sky的帖子

Grails:如何从控制器或服务访问i18n?

我制作了这个控制器,用于发送电子邮件.我需要访问i18n才能发送本地化的电子邮件.

class MailController {

    MessageSource messageSource 

    static transactional = false

    public void sendEmail() {
        String name = "some name..."
        String subject = message(code:"somemessagekey", args:[name])
        // do some fancy stuff here...
    }
}
Run Code Online (Sandbox Code Playgroud)

i18n然后是文件(位于i18n文件夹中):

file name: messages.properties
content: somemessagekey = Blabla {0} - blablabla
Run Code Online (Sandbox Code Playgroud)

运行之后,它会抛出(在集成测试中):

groovy.lang.MissingPropertyException:没有这样的属性:class的messageSource:org.codehaus.groovy.grails.support.MockApplicationContext

我没有想法如何处理控制器中的本地化(我也在服务中尝试过,但这更复杂).

grails

20
推荐指数
4
解决办法
2万
查看次数

如何在 macOS 的 SwiftUI 中使用菜单命令实现多窗口?

情况

实现一个多窗口应用程序,其中每个窗口都有自己的状态。

例子

这是一个展示问题的示例(在 github 上):

import SwiftUI

@main
struct multi_window_menuApp: App {

  var body: some Scene {
    WindowGroup {
      ContentView()
    }.commands {
      MenuCommands()
    }
  }
}

struct ContentView: View {
  @StateObject var viewModel: ViewModel  = ViewModel()
  
  var body: some View {
    TextField("", text: $viewModel.inputText)
      .disabled(true)
      .padding()
  }
}

public class ViewModel: ObservableObject {
  
  @Published var inputText: String = "" {
    didSet {
      print("content was updated...")
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题

我们应该如何以编程方式找出当前选定的视图是什么,以便我们可以在菜单命令即将完成时更新状态并更新视图模型中的状态?

import Foundation
import SwiftUI
import Combine

struct MenuCommands: …
Run Code Online (Sandbox Code Playgroud)

macos swift swiftui

8
推荐指数
2
解决办法
1930
查看次数

在Tomcat6上运行的Grails应用程序抛出NotSerializableException

我正在使用在Ubuntu服务器上运行的tomcat6.我已经部署了三个Grails 1.3.7应用程序.所有这些应用程序都使用包含我的域类的插件.

重新启动tomcat6后,我收到此异常.是什么导致IOException?我可以尝试在我的Groovy域类中实现Serializable接口......但我认为这不是真的需要.

这是异常堆栈跟踪:

SEVERE: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.example.User
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.example.User
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
        at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:479)
        at com.vaadin.event.ListenerMethod.readObject(ListenerMethod.java:110)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
        at java.util.HashSet.readObject(HashSet.java:291)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) …
Run Code Online (Sandbox Code Playgroud)

grails tomcat

2
推荐指数
1
解决办法
1325
查看次数

Java:在if语句中访问字符串

显示在If语句中声明的字符串时出现问题,以下是代码:

import java.util.Scanner;

// This program reads a temp and prints its current state
public class P03_01_2 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // get temp
        System.out.print("Enter a temperature: ");
        if (in.hasNextDouble()) {
            double temp = in.nextDouble();

            // determine temp type and determine state

            System.out.print("Enter C for Celcius or F for Fahrenheit: ");
            String type = in.nextLine();
            if (type.equals("c") || type.equals("C")) {
                if (temp <= 0) {
                    String state = "frozen";
                } else if …
Run Code Online (Sandbox Code Playgroud)

java string if-statement

-1
推荐指数
1
解决办法
2421
查看次数

标签 统计

grails ×2

if-statement ×1

java ×1

macos ×1

string ×1

swift ×1

swiftui ×1

tomcat ×1