我在 JSF bean 之间传递数据时遇到了这个问题。我想要做的是在我登录时,将用户名传递给我可以使用它的下一个 bean。我发现了很多关于这个的东西,但我无法让它在我的项目中工作。我拥有的是一个 UserService,我可以在其中管理我的用户。这里有一个方法叫做 getUsers(username)。现在我正在尝试传递用户名,以便我可以检索我的用户对象。
html:
<h:link outcome="changeProfile" value="Change profile">
<f:param name="username" value="#{userBean.username}" />
</h:link>
Run Code Online (Sandbox Code Playgroud)
更改配置文件Bean:
@Component("changeProfile")
@ManagedBean
@RequestScoped
public class ChangeProfileBean implements Serializable {
private UserService userService;
private User user;
@ManagedProperty("#{param.username}")
private String username;
@PostConstruct
public void init(){
FacesContext facesContext = FacesContext.getCurrentInstance();
this.username = facesContext.getExternalContext().getRequestParameterMap().get("username");
try {
if(username != null){
user = userService.getUser(username);
}
} catch (UserServiceException e) {
e.printStackTrace();
}
}
@Autowired
public ChangeProfileBean(UserService userService) {
this.userService = userService;
}
Run Code Online (Sandbox Code Playgroud)
发生的情况是在应用程序启动时将创建 changeUserbean。然后立即运行@PostConstruct,其中username 显然等于null。但是当我调用 changeUserBean 时,它不再执行 @PostConstruct …
我有一个 Java Web 应用程序,我在 6 个月前一直在使用它,当我上次使用它时,它可以完美运行。当我 6 个月后再次运行它时,我收到了这个错误“找不到 catalina.jar”。我正在使用 IntelliJ 13.0 和 tomcat 7.0.34。有人可以帮我解决这个问题吗?
我正在写一个Haskell程序.我创建了一个名为measurement的数据类型,它是一个双精度数组,它看起来像这样:
data Measurement = Measurement [Double] deriving (Show)
Run Code Online (Sandbox Code Playgroud)
我有一个强制转换为Measurement的功能,它需要一个双打列表列表,并将其转换为测量列表.它看起来像这样:
castToMeasurement :: [[Double]] -> [Measurement]
castToMeasurement = map Measurement
Run Code Online (Sandbox Code Playgroud)
但现在我想对双值进行一些操作.那么有没有一种方法可以取消映射到双打数组?因此,当我给它一个Measurement(或测量列表)时,它会将它转换为双打列表(或双列表列表).谢谢!